【问题标题】:Laravel 5.1 Logger TimezoneLaravel 5.1 记录器时区
【发布时间】:2017-04-06 16:51:26
【问题描述】:

有没有办法可以更改 Laravel 5.1 记录器的时区?我看过之前的讨论,他们扩展了 Monolog 类并更新了 Service Provider,但那是针对旧版本的 Laravel,看起来不再使用 LogServiceProvider

我看到app.php 文件中有一个timezone 键,但我不希望整个系统发生变化。我只想更新日志的时区,并将系统的其余部分保持在 UTC。

【问题讨论】:

  • 为什么不让您自己的提供者扩展Monolog 类并以这种方式更改时区?
  • 我认为扩展类和设置时区没有问题,但我不确定如何让系统使用该扩展类而不是 Monolog 类。

标签: php datetime timezone laravel-5.1


【解决方案1】:

刚刚看到你的回复,我想通了,真的很简单。创建一个新的服务提供者并将其注册到config/app.php,然后将以下行添加到boot 方法中。

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

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

您可以将时区设置为此列表中的任何一个,http://php.net/manual/en/timezones.php

【讨论】:

  • 太棒了,谢谢!不敢相信事情就这么简单。我需要做更多的阅读。再次感谢。
  • 这在 Lumen 6.0 中对我有用,但是我使用了 Log::setTimezone 而不是 Logger::setTimezone。我刚刚创建了一个名为 app/Providers/LogTimeZoneServiceProvider.php 的新服务提供者类,将建议的代码包含在 boot() 方法中,并将其添加到 bootstrap/app.php 中的 providers 数组中
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 2018-04-24
相关资源
最近更新 更多