Laravel 5.1的日志记录器时区问题

4
有没有一种方法可以更改Laravel 5.1日志记录器的时区?我看到以前有人扩展了Monolog类并更新了服务提供程序,但那是针对旧版本Laravel的,并且似乎不再使用LogServiceProvider。我在app.php文件中看到timezone键,但我不想更改整个系统,我只想更新日志记录的时区,并将系统的其余部分保持在UTC。

为什么不自己创建一个提供程序来扩展“Monolog”类并以这种方式更改时区呢? - tomirons
我认为扩展类并设置时区不是问题,但我不确定如何使系统使用该扩展类而不是 Monolog 类。 - kenshin9
1个回答

8

我刚看到了你的回复,我已经搞定了,而且它真的很简单。创建一个新的服务提供商并在config/app.php中注册它,然后将以下行添加到boot方法中。

Logger::setTimezone(new \DateTimeZone('PST'));

确保在你的服务提供者的顶部包含 Logger 类。

你可以从这个列表中选择一个时区,例如:http://php.net/manual/en/timezones.php


1
太棒了,谢谢!简单到我都不敢相信。我需要再多读一些资料。再次感谢。 - kenshin9
这在Lumen 6.0中对我有效,但是我使用了Log::setTimezone而不是Logger::setTimezone。我只需创建一个名为app/Providers/LogTimeZoneServiceProvider.php的新服务提供者类,将建议的代码包含在boot()方法中,并将其添加到bootstrap/app.php中的providers数组中即可。 - Derrick Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接