Laravel 集成了 Monolog 日志函數庫,Monolog 支持和提供多種強大的日志處理功能。
1、設置,日志模式
(1)Laravel 提供可立即使用的 single、daily、syslog 和 errorlog 日志模式。
例如,如果你想要每天保存一個日志文件,而不是單個文件,則可以在 config/app.php 配置文件內設置 log 變量:'log' => 'daily'
'log' => env('APP_LOG', 'single'), // 可用配置有:"single", "daily", "syslog", "errorlog" single —— 將日志記錄到單個文件中。該日志處理器對應Monolog的StreamHandler。 daily —— 以日期為單位將日志進行歸檔,每天創建一個新的日志文件記錄日志。該日志處理器 對應Monolog的RotatingFileHandler。 syslog —— 將日志記錄到syslog中。該日志處理器 對應Monolog的SyslogHandler。 errorlog —— 將日志記錄到PHP的error_log中。該日志處理器 對應Monolog的ErrorLogHandler。
(2)當使用「日志模式」時,默認情況下會保存 5 天的日志,你可通過 app.php 配置文件里的配置項 log_max_files來定制日志保存天數:
'log_max_files' => 30
(3)如果你想要完全控制 Monolog,則使用應用程序的 configureMonologUsing 方法。此方法應該在bootstrap/app.php 文件返回 $app 變量之前被調用:
$app->configureMonologUsing(function($monolog) {
$monolog->pushHandler(...);
});
return $app;
(4)默認情況下,Laravel 對所有的錯誤級別進行記錄,你可以通過定制 app.php 的 log_level 設置項來限制錯誤記錄級別。Laravel 會記錄大於或者等於你設置的 log_level 的值,例如:設置 log_level 為 error 級別的話,Laravel 會記錄 error, critical, alert, 和 emergency 級別的錯誤。
'log_level' => env('APP_LOG_LEVEL', 'debug'),
(5)日志存儲位置:'storage/logs/laravel.log
2、我們在項目中,使用 "log Facades" 來記錄日志
use Log; Log::debug(); // 記錄日志 如: use Log;
Log::debug('ivy', ['name'=>'ivy', 'age'=>30]); Log::info('ivy', ['name'=>'ivy', 'age'=>30]); 在 'storage/logs/laravel.log' 中記錄: [2019-06-17 16:54:28] local.DEBUG: ivy {"name":"ivy","age":30} [2019-06-17 16:54:28] local.INFO:ivy {"name":"ivy","age":30}
修改 'config/app.php' 中的 "log" 配置為 'daily',會生成:
'storage/logs/laravel-2019-06-17.log'