Как изменить журнал по умолчанию в Laravel 5?

0

У Laravel 5 есть только одно место для настройки ведения журнала. Вы можете указать, хотите ли вы ежедневные файлы журнала или один файл журнала.

Я хочу использовать свой собственный монологический экземпляр, но я не могу понять, какое место следует назначить его писателю Laravel Log.

Я хочу иметь возможность продолжать использовать фасад журнала.

В моем поиске я наткнулся на http://laravel.io/forum/02-11-2014-howto-log-with-mongodb, поэтому у меня есть идея о том, как это реализовать, но сообщение форума написано для Laravel 4. В Laravel 5 уже нет app/start/global.php, и я ищу подходящее место для этого кода.

Это что-то нужно делать в качестве промежуточного ПО?

Теги:
logging
laravel-5

2 ответа

2
Лучший ответ

Взгляните на Illuminate\Foundation\Bootstrap\ConfigureLogging. Здесь происходит настройка журнала.

В частности, метод registerLogger(). Обратите внимание, как он устанавливает $app['log']:

$app->instance('log', $log = new Writer(
    new Monolog($app->environment()), $app['events'])
);

Так что я бы сделал, это отредактировать AppServiceProvider (или создать новый LogServiceProvider, ваши предпочтения) и перезаписать это.

$app->instance('log', new \Illuminate\Log\Writer(
    new Monolog\Logger(... however you want to setup Monolog ...)
);

Фасад Log просто обращается к $app['log']. Итак, как только вы переопределили это, вы все настроены.

  • 0
    Большое спасибо. Я переместил ведение журнала в его собственный пакет с его собственной конфигурацией, поэтому LogServiceProvider теперь кажется очевидным способом сделать это. Спасибо за указание, как это сделать. :)
1

Я решил это, переопределив класс Illuminate\Foundation\Bootstrap\ConfigureLogging. Маленькая запись о том, как: Настройка пользовательских журналов в Laravel 5

  • 0
    Неустранимая ошибка PHP: необработанное исключение «ReflectionException» с сообщением «Журнал классов не существует» в /home/vagrant/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:741 трассировки стека: # 0 / home /vagrant/api/vendor/laravel/framework/src/Illuminate/Container/Container.php(741): ReflectionClass -> __ construct ('log') # 1 / home / vagrant / api / vendor / laravel / framework / src / Подсветка / Контейнер / Контейнер.php (631): Подсветка \ Контейнер \ Контейнер-> сборка ('log', Array)
  • 0
    есть ошибки бега тинкер

Ещё вопросы

Сообщество Overcoder
Наверх
Меню