【问题标题】:How do I disable a log channel on local and testing environment如何在本地和测试环境中禁用日志通道
【发布时间】:2019-10-31 10:42:31
【问题描述】:

在我的应用程序中,我有这些日志通道:

'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 的共享日志频道上出现重复和非常不需要的日志。

那么我如何指定slack 通道能够写入日志的环境。一个肮脏的方法是通过这个代码的 sn-p 手动指定将写入哪些日志:

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】:

    您可以简单地将 jobs 拆分为 2 个条目,例如 jobsjobs_without_slack,让 jobs 保持原样,jobs_without_slack 将被配置为不带 slackchannels。然后使用不同的.env.xy 文件进行测试(.env.testing)、本地、开发(.env.develop)等并将LOG_CHANNEL 设置为正确的日志记录,因此您无需更改您的代码中的一行代码逻辑;)

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多