dev*_*ev7 11 php logging laravel monolog laravel-5
我正在使用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);
Run Code Online (Sandbox Code Playgroud)
然而,在我的生产环境,我想只记录任何是Error,Critical,Alert或Emergency优先级和无视登录请求优先级较低.
我在文档中找不到任何东西,或者通过探索代码(Log外观和Monolog类).
我目前的想法是在Log外观周围创建一个自定义包装器,它只是检查环境并忽略400以下的任何内容(Monolog级别为Error).基本上我会在环境文件中创建一个阈值变量,其下面的任何内容都不会记录到文件中.
在我这样做之前,我想询问社区是否存在我可以使用的现有方法/配置,以便我不重新发明轮子.
如果不是 - 最好的方法是什么?
该主旨显示出更舒适的答案,因为它不依赖于所选的处理程序。
我只是在这里提供答案的必要部分,以防上述链接在一段时间后被删除。
在AppServiceProviders的register方法中:
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
$monolog = Log::getMonolog();
foreach($monolog->getHandlers() as $handler) {
$handler->setLevel(Config::get('app.log-level'));
}
}
Run Code Online (Sandbox Code Playgroud)
然后只需向您的config / app.php添加一个额外的密钥:
'log-level' => 'info', // or whatever minimum log level you would like.
Run Code Online (Sandbox Code Playgroud)