如何更改Laravel 5中的默认日志?

时间:2015-03-12 13:09:10

标签: php logging laravel-5

Laravel 5只有一个地方可以配置日志记录。您可以指定是否需要每日日志文件或单个日志文件。

我想使用我自己的monolog实例,但我似乎无法弄清楚将它分配给Laravel Log writer的适当位置。

我希望能够继续使用Log facade。

在我的搜索中,我偶然发现了http://laravel.io/forum/02-11-2014-howto-log-with-mongodb,所以我对如何实现这一点有所了解,但论坛帖子是为Laravel 4编写的。在Laravel 5中,不再有app/start/global.php而且我正在寻找这个代码的合适位置。

这是你应该做的中间件吗?

2 个答案:

答案 0 :(得分: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']。所以,一旦你超越了这一点,你就会全力以赴。

答案 1 :(得分:1)

我通过覆盖Illuminate \ Foundation \ Bootstrap \ ConfigureLogging类解决了这个问题。小写如何:Configuring Custom Logs in Laravel 5