forecho / laravel-trace-log
laravel的跟踪日志
v1.1.3
2022-08-11 03:08 UTC
Requires
- php: >=7.2
README
安装
composer require forecho/laravel-trace-log
如果你使用Lumen,需要在 bootstrap/app.php
文件中添加服务提供者。
$app->register(Forecho\LaravelTraceLog\TraceLogServiceProvider::class);
配置
此步骤是可选的
php artisan vendor:publish --provider="Forecho\LaravelTraceLog\TraceLogServiceProvider"
如果你使用Lumen,需要在 config
目录中添加配置文件。
cp vendor/forecho/laravel-trace-log/config/tracelog.php config/
并且你需要在 bootstrap/app.php
文件中添加代码。
$app->configure('tracelog');
注意
log_filter_half_hide_keys
中对应键的值的位数必须大于2,否则所有数据将被隐藏。- 如果配置文件导致错误,过滤功能将无效,可以通过搜索
request_params_filter_key_config_error
来查看错误日志。
additional_fields
是一个数组,包含将要添加到日志中的额外字段。例如
'additional_fields' => [ 'user_id' => [App\Models\User::class, 'getId'], 'tag' => 'test', // value can use closure、string、array ],
将 getId()
方法添加到 User 模型中,字段的值将是方法的返回值。
namespace App\Models; class User { public static function getId(): ?int { return data_get(Auth::user(), 'id'); } }
用法
中间件(可选)
修改 App\Http\Kernel.php
文件以添加 TraceLogMiddleware
中间件。
use Forecho\LaravelTraceLog\Middleware\TraceLogMiddleware; protected $middlewareGroups = [ // ... 'api' => [ // ... 'request.tracelog' ], ]; protected $routeMiddleware = [ // ... 'request.tracelog' => TraceLogMiddleware::class ];
记录
use Forecho\LaravelTraceLog\TraceLog; TraceLog::warning('This is a warning message.', ['foo' => 'bar']); TraceLog::error('This is an error message.', ['foo' => 'bar']); TraceLog::info('This is an info message.', ['foo' => 'bar']); TraceLog::debug('This is a debug message.', ['foo' => 'bar']);
获取 Trace ID
use Forecho\LaravelTraceLog\TraceLog; TraceLog::getTraceId();
Curl 请求
如果你希望下一个系统使用相同的 trace_id,你需要在 header
中添加 trace_id
use Forecho\LaravelTraceLog\TraceLog; $key = config('tracelog.trace_id_header_key'); $headers = [ $key => TraceLog::getTraceId(), ]