У Laravel 5 есть только одно место для настройки ведения журнала. Вы можете указать, хотите ли вы ежедневные файлы журнала или один файл журнала.
Я хочу использовать свой собственный монологический экземпляр, но я не могу понять, какое место следует назначить его писателю Laravel Log.
Я хочу иметь возможность продолжать использовать фасад журнала.
В моем поиске я наткнулся на http://laravel.io/forum/02-11-2014-howto-log-with-mongodb, поэтому у меня есть идея о том, как это реализовать, но сообщение форума написано для Laravel 4. В Laravel 5 уже нет app/start/global.php
, и я ищу подходящее место для этого кода.
Это что-то нужно делать в качестве промежуточного ПО?
Взгляните на 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']
. Итак, как только вы переопределили это, вы все настроены.
Я решил это, переопределив класс Illuminate\Foundation\Bootstrap\ConfigureLogging. Маленькая запись о том, как: Настройка пользовательских журналов в Laravel 5