Laravel 5 种不同的开发和生产日志级别

2023-11-23

我正在使用 Laravel 5.1 并尝试为开发和生产环境设置不同的日志逻辑。

在我的整个申请过程中,我使用Log门面具有以下大多数不同的方法:

Log::emergency($error);
Log::alert($error);
Log::critical($error);
Log::error($error);
Log::warning($error);
Log::notice($error);
Log::info($error);
Log::debug($error);

但是,在我的生产环境中,我只想记录任何属于Error, Critical, Alert or Emergency优先级并忽略优先级较低的日志请求。

我在文档或探索代码中找不到任何内容(两者都Log立面和Monolog class).

我当前的想法是围绕日志外观创建一个自定义包装器,它只需检查环境并忽略低于 400(错误的独白级别)的任何内容。基本上,我会在环境文件中创建一个阈值变量,低于它的任何内容都不会记录到文件中。

在这样做之前,我想询问社区是否有我可以使用的现有方法/配置,这样我就不会重新发明轮子。

如果不是 - 最好的方法是什么?


This gist显示了更舒适的答案,因为不依赖于 选择的处理程序。

我只是在这里提供答案中的重要部分,以防上述链接在一段时间内被删除。

在AppServiceProviders的注册方法中:

/**
* Register any application services.
*
* @return void
*/
public function register()
{
    //
    $monolog = Log::getMonolog();
    foreach($monolog->getHandlers() as $handler) {
      $handler->setLevel(Config::get('app.log-level'));
    }
}

然后只需在 config/app.php 中添加一个附加密钥:

'log-level' => 'info', // or whatever minimum log level you would like.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5 种不同的开发和生产日志级别 的相关文章

随机推荐