我正在使用Laravel 5.1并尝试为开发和生产环境设置不同的日志记录逻辑.
在我的应用程序中,我使用了大多数以下不同方法的Log facade:
Log::emergency($error); Log::alert($error); Log::critical($error); Log::error($error); Log::warning($error); Log::notice($error); Log::info($error); Log::debug($error);
但是,在我的生产环境中,我只想记录任何错误,严重,警报或紧急优先级的内容,并忽略优先级较低的日志请求.
我在文档中找不到任何东西,或者通过探索代码(Log facade和Monolog类).
我目前的想法是在Log外观周围创建一个自定义包装器,它只检查环境并忽略400以下的任何内容(Monolog级别为Error).基本上我会在环境文件中创建一个阈值变量,其下面的任何内容都不会记录到文件中.
在我这样做之前,我想询问社区是否存在我可以使用的现有方法/配置,以便我不重新发明轮子.
如果不是 – 最好的方法是什么?
这个
gist显示了一个更舒服的答案,因为它不依赖于
选择处理程序
选择处理程序
我只是在这里提供答案的基本部分,以防上述链接在一段时间内被删除.
在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')); } }
然后只需在config / app.PHP中添加一个额外的密钥:
'log-level' => 'info',// or whatever minimum log level you would like.