Изменение уровней журнала в Laravel 4

Документация laravel указывает в документации, что "The logger provides the seven logging levels defined in RFC 5424: debug, info, notice, warning, error, critical, and alert.", но где это должно быть изменено, это то, что не предусмотрено. Может ли кто-нибудь помочь мне понять, как это работает и где необходимо изменить уровень журнала?

Ответ 1

Выяснил это, посмотрев LogWriter Class. Не уверен, что это правильный подход, но в приложении Laravel должна быть конфига, которая должна установить уровень ведения журнала Laravel.

Это то, что нужно сделать, чтобы изменить уровень ведения журнала.

Перейдите к app/start/global.php (https://github.com/laravel/laravel/blob/master/app/start/global.php#L36), а по Line 36 вы найдете код

Log::useDailyFiles(storage_path().'/logs/'.$logFile);

Это нужно изменить на

Log::useDailyFiles(storage_path() . '/logs/' . $logFile, 0, 'error');

Третий параметр - это то, где необходимо изменить уровень журнала, а также следующие уровни журналов, которые можно использовать

  • отладки
  • Информация
  • Уведомление
  • предупреждение
  • Ошибка
  • критическое
  • оповещения

Надеюсь, это поможет тем, кто когда-либо искал это. Надеюсь, что есть более простой способ сделать это вместо изменения параметра функции.

Ответ 2

Мы можем взять Abishek на один шаг дальше. Если мы добавим уровни журнала в наши файлы конфигурации, мы сможем изменить уровень журнала на основе среды, в которой мы находимся. В config/app.php:

'log_level' => 'debug',

и в config/prod/app.php:

'log_level' => 'warning',

Затем мы меняем ежедневный регистратор на

Log::useDailyFiles(storage_path() . '/logs/' . $logFile, 0, Config::get('app.log_level'));

и у нас есть настраиваемая регистрация.