laravelで操作ログを記録する。

未分類


誰がどんな操作を残す事で、バグの原因をへっこうできたりします。
独自実装も可能ですが、今回はデファクタスタンダードになっている。

Laravel Auditing

と言うミドルウェアを使った実装を考えたいと思います。

まずは下記のcomposerを使用してインストールします。

composer require owen-it/laravel-auditing

次にミドルウェアを使用する為、config/app.phpに追加します。

'providers' => [
    OwenIt\Auditing\AuditingServiceProvider::class,
],

laravelの設定ファイルを下記コマンドで作成します。

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="config"

次にデータベースを作成する為のmigrationファイルを下記コマンドで作成します。

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="migrations"

日本語対応

日本語がエスケープされてしまうので対応は下記を参考にさせて頂きました。

まずは自前のmodelを作成し

<?php

namespace App\Models;

use OwenIt\Auditing\Models\Audit as AuditModel;

class Audit extends AuditModel
{
    protected function asJson($value)
    {
        return json_encode($value, JSON_UNESCAPED_UNICODE);
    }
}

laravel9だとconfig/audit.phpを変更します。

//    'implementation' => OwenIt\Auditing\Models\Audit::class,
    'implementation' => App\Models\Audit::class,