Laravel 中自定义日志目录

时间:2024-04-09 16:22:11

如何把日志写入到指定目录文件
希望下面的见解对各位小伙伴有帮助哈!
比如我想单独记录sql的时候,使用 Log::info() 会让日志全部记录在 storage/logs/laravel.log 文件里,查找起来比较麻烦。那么我可不可以单独记录在一个日志文件里呢?

只需在你的代码中加入

Log::useDailyFiles(storage_path('logs/job/error.log'));
这样日志就会单独记录在 logs/job/error.log 中,如:

Laravel 中自定义日志目录

这是按每日记录的,想要单文件记录日志可以使用
Log::useFiles(storage_path('logs/job/error.log')); 。

到这里,日志会记录两份,
1.是自带的日志文件内容,
2.是自己指定的日志文件内容。

那么,只想在指定的文件里记录要怎么做?
只需在 Log::useDailyFiles(storage_path('logs/sql/sql.log')) 之前加上,
$monolog = Log::getMonolog();
$monolog->popHandler();

例如:
Laravel 中自定义日志目录

这样,该类中的日志就是只记录在你指定的文件中。

具体可以看一下MonoLog的用法,laravel的Log底层是使用的MonoLog.