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'