如何在 Laravel 5 中更改默认日志


How to change the default log in Laravel 5?

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

我想使用我自己的单日志实例,但我似乎无法弄清楚将其分配给 Laravel 日志编写器的合适位置是什么。

我希望能够继续使用日志外观。

在我的搜索中,我偶然发现了 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 中配置自定义日志的小文章