2015-03-12 2 views
0

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

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

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

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

Это что-то, что вы должны сделать в качестве промежуточного программного обеспечения?

ответ

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 кажется очевидным способом сделать это. Спасибо, что указали, как это сделать. :) – winkbrace

1

Я решил это, переопределив класс Illuminate \ Foundation \ Bootstrap \ ConfigureLogging. Маленькая запись на как: Configuring Custom Logs in 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/Illuminate/Container/Container.php (631): Illuminate \ Container \ Container-> build ('log', Array) –

+0

получил ошибки при запуске tinker –

Смежные вопросы