日志
配置
laravel 框架中日志系统配置位于 config/logging.php 配置文件中,默认情况下使用 stack 记录日志消息
构建日志堆栈
\'channels\' => [
\'stack\' => [
\'driver\' => \'stack\',
\'channels\' => [\'syslog\', \'slack\'],
],
\'syslog\' => [
\'driver\' => \'syslog\',
\'level\' => \'debug\',
],
\'slack\' => [
\'driver\' => \'slack\',
\'url\' => env(\'LOG_SLACK_WEBHOOK_URL\'),
\'username\' => \'Laravel Log\',
\'emoji\' => \':boom:\',
\'level\' => \'critical\',
],
],
stack 通过借助它的 channels 选项聚合了另外两个通道: syslog 和 slack
日志级别
- debug (100): 详细的调试信息
- info (200): 用户登录、SQL 日志等事件
- notice (250): 普通但有意义的事件
- warning (300): 非错误的异常,警告信息
- error (400): 运行时的错误,不需要立即操作,但通常应该被记录和监视
- critical (500): 至关重要的条件。示例:应用程序组件不可用,意外异常
- alert (550): 必须立即采取行动。例如:整个网站宕机,数据库不可用等。这会触发短信提醒并唤醒你
- emergency (600): 紧急情况:系统无法使用
以上日志级别逐级提高
Log::debug(\'An informational message.\');
参照上面的例子,debug 级别的日志会触发 syslog 通道,但不会触发 slack 通道,因为 critical 的级别高于 debug
如果我们记录一条 emergency 消息,它将被发送给 syslog 和 slack,因为 emergency 的级别高于两个通道的最低级别限制
Log::emergency(\'The system is down!\');
写入日志信息
Log::log(\'debug\',$message);
Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);
//默认情况下,消息被写入到在 config/logging.php 配置文件中定义的默认日志通道
Log::log(\'info\', \'Showing user profile for John\');
Log::info(\'Showing user profile for John\');
Log::info(\'User failed to login.\', [\'id\' => $user->id]);
Log::channel(\'notice\')->info(\'Something happened!\'); //指定日志通道
Log::stack([\'single\', \'slack\'])->info(\'Something happened!\'); //多通道构成的按需记录的堆栈