在我的应用程序中,我具有以下日志通道:
'general' => [
'driver' => 'single',
'path' => storage_path('logs/general.log'),
'level' => 'debug',
],
'jobs' => [
'driver' => 'stack',
'channels' => [
'general',
'slack'
],
],
'slack' => [
'driver' => 'slack',
'url' => /*Censored Hook URL*/,
'username' => 'MyApp',
'emoji' => ':gear:',
'level' => 'debug',
],
当我在本地或测试环境中登录job
通道时,我不想登录到slack
日志中,以避免在松弛的共享日志通道上出现重复的日志和非常不需要的日志。
所以我如何指定slack
通道将能够写入日志的环境。肮脏的方法是通过以下代码片段手动指定要写入哪些日志:
if(!App::environment(['local','testing')){
Log::channel('jobs')->info('Blah blah blah');
} else {
Log::channel('general')->info('Blah blah blah');
}
但是使用上面的代码,恐怕会使我的代码库变成难于阅读的代码。那么,您是否知道一种优雅的解决方案来处理我的日志?
您可以简单地将jobs
分成2个条目,例如jobs
和jobs_without_slack
,让jobs
保持原状,并且jobs_without_slack
将被配置为在slack
中不包含channels
。然后使用不同的.env.xy
文件进行测试,本地,开发等,并将LOG_CHANNEL
设置为正确的日志记录;)