Как отключить канал журнала в локальной и тестовой среде - PullRequest
0 голосов
/ 31 октября 2019

В моем приложении у меня есть следующие каналы журнала:

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

Но, используя приведенный выше код, я боюсь, что это превратит мою кодовую базу в непростую для чтенияодин. Так знаете ли вы элегантное решение для обработки моих журналов?

1 Ответ

1 голос
/ 31 октября 2019

Вы можете просто разделить jobs на 2 записи, например jobs и jobs_without_slack, пусть jobs будет как есть, и jobs_without_slack будет настроено без slack в его channels. Затем используйте различные .env.xy файлы для тестирования (.env.testing), локальные, разработанные (.env.develop) и т. Д. И установите LOG_CHANNEL для правильного ведения журнала, чтобы вам не нужно было менять строку кода в вашемлогика;)

...