1. 日志通道
Laravel 日志基于「 通道 」, 默认使用 stack 通道, stack通道将多个通道集合到一个通道中。
查看通道配置, stach通道默认使用 single 通道记录日志。
在开始就将日志渠道改成了 LOG_CHANNEL=daily, daily通道基于 RotatingFileHandler , 每天分割日志 。
2. 日志路径
single 和 daily 通道需要指定日志路径,通过修改 path 参数实现。
#config/logging.php
'path' => env('LOG_PATH', storage_path('logs/')) . 'laravel.log',
#.env 如果不指定 LOG_PATH ,默认是在 storage/logs 目录中
LOG_PATH=/data/log/Genes-Admin/
3. 日志文件权限
single 和 daily 通道生成的日志文件默认是 644 权限.
root@d92a8d4c6792:/var/www/ogenes/Genes-Admin/storage/logs# ls -la laravel-2022-08-31.log
-rw-r--r-- 1 root root 0 Aug 31 14:09 laravel-2022-08-31.log
如果要修改,可以通过 permission 参数控制
'daily' => [
'driver' => 'daily',
'path' => env('LOG_PATH', storage_path('logs/')) . 'laravel.log',
'level' => env('LOG_LEVEL', 'debug'),
'days' => env('LOG_MAX_FILES', 14),
'permission' => 0777
],
…………
root@d92a8d4c6792:/var/www/ogenes/Genes-Admin/storage/logs# ls -la laravel-2022-08-31.log
-rwxrwxrwx 1 root root 21840 Aug 31 14:14 laravel-2022-08-31.log
4. 自定义日志channel
'common' => [
'driver' => 'daily',
'path' => env('LOG_PATH', storage_path('logs/')) . 'common.log',
'level' => env('LOG_LEVEL', 'warning'),
'days' => env('LOG_MAX_FILES', 14),
],
5. 将common异常日志切换到自定义channel中
Log::channel('common')->warning("CommonException", [
'file' => $this->getFile(),
'line' => $this->getLine(),
'code' => $code,
'msg' => $msg,
]);
…………
root@d92a8d4c6792:/var/www/ogenes/Genes-Admin/storage/logs# ls -la common*
-rw-r--r-- 1 root root 7280 Aug 31 14:18 common-2022-08-31.log