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,