«

Laravel记录日志功能总结(指定日志存储文件,分级别存储日志文件)

时间:2024-2-18 10:13     作者:韩俊     分类: PHP


在laravel框架中记录日志的时候,一般都会使用 Log::info() 方法,该方法会将日志全部记录在 storage/logs/laravel.log 文件里,这样的问题是当日志文件比较多的时候查找起来比较麻烦。这里记录一下将日志单独记录在自定义的文件里面去的方法。

laravel文档里没有写,于是我去翻Laravel的源码,结果还真给我找到了。只需在你的代码中加入

Log::useDailyFiles(storage_path('logs/zabbix/error.log'));

这样日志就会单独记录在 logs/zabbix/error.log 中,这是按每日记录的,想要单文件记录日志可以使用 

Log::useFiles(storage_path('logs/zabbix/error.log'));

到这里,日志会记录两份,就是你指定的文件和原来laravel记日志的文件。

那么,只想在指定的文件里记录要肿么办呢?

其实也简单。只需在 Log::useDailyFiles(storage_path('logs/zabbix/error.log')) 之前加上,

$monolog = Log::getMonolog();
$monolog->popHandler();

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

另外也可以对不同level的错误存放在不同的日志文件,如下:

Log::useFiles(storage_path() . '/logs/' . date('Y-m-d') . '_debug.log', 'debug');
Log::useFiles(storage_path() . '/logs/' . date('Y-m-d') . '_notice.log', 'notice');
Log::useFiles(storage_path() . '/logs/' . date('Y-m-d') . '_err.log', 'error');

低等级的log会同时记录高等级的错误,如debug里有error的信息,分文件后看起来就方便多啦。

标签: php php教程

热门推荐