如何在 Symfony 2 中全局更改 Monolog 的默认日期时区?

She*_*aby 1 php logging symfony monolog

我在 Symfony 2 中使用 Monolog 进行日志记录,Monolog 使用默认时区设置php.ini并回退到 UTC。

没有配置参数可以确定 Monolog 的时区。

更改所用时区的一种方法是使用\Monolog\Logger::setTimezone(),但我不想每次使用日志记录时都进行迭代并确保我使用了\Monolog\Logger::setTimezone().

由于时区在所有记录器实例中全局使用,如果我在使用某种 init 函数之前以某种方式设置时区?我的问题是 Symfony 处理 Monolog 的实例化和注入,有没有一种方法可以让我在实例化记录器实例后告诉 Symfony 使用 setTimezone() ?

小智 6

namespace AppBundle;

use Monolog\Logger;
use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
    public function boot()
    {
        parent::boot(); // TODO: Change the autogenerated stub
        Logger::setTimezone(new \DateTimeZone('UTC'));
    }
}
Run Code Online (Sandbox Code Playgroud)