如何在本地和测试环境上禁用日志通道

问题描述 投票:0回答:1

在我的应用程序中,我具有以下日志通道:

'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');
}

但是使用上面的代码,恐怕会使我的代码库变成难于阅读的代码。那么,您是否知道一种优雅的解决方案来处理我的日志?

laravel logging development-environment production-environment
1个回答
0
投票

您可以简单地将jobs分成2个条目,例如jobsjobs_without_slack,让jobs保持原状,并且jobs_without_slack将被配置为在slack中不包含channels。然后使用不同的.env.xy文件进行测试,本地,开发等,并将LOG_CHANNEL设置为正确的日志记录;)

© www.soinside.com 2019 - 2024. All rights reserved.