Zend 3 - 使用记录器即服务



我对 ZF3 很新手,我不知道我应该如何将记录器模块定义为服务以及如何在其他模块中使用(重用(它。从这个角度来看,官方文档很差。任何简短的例子都会很好。

如果你想在ZF应用程序中使用zend-log,安装后你需要做两件事:

  1. 在应用程序配置中的"模块"键下注册ZendLog

  2. 在全局.php或模块配置中为您的记录器添加配置

    'log' => [
    'MyLogger' => [
    'writers' => [
    'stream' => [
    'name' => 'stream',
    'priority' => ZendLogLogger::ALERT,
    'options' => [
    'stream' => '/tmp/php_errors.log',
    'formatter' => [
    'name' => ZendLogFormatterSimple::class,
    'options' => [
    'format' => '%timestamp% %priorityName% (%priority%): %message% %extra%',
    'dateTimeFormat' => 'c',
    ],
    ],
    'filters' => [
    'priority' => [
    'name' => 'priority',
    'options' => [
    'operator' => '<=',
    'priority' => ZendLogLogger::INFO,
    ],
    ],
    ],
    ],
    ],
    ],
    ],
    ],
    

之后,只需从服务管理器中获取它并使用它:

$logger = $container->get('MyLogger'); // <-- the key that you register in config above
$logger->info('Logging info message in the file');

您可能希望从SM中获取记录器,然后将其注入到要使用的类中。

有一篇关于使用 zend-log 进行日志记录的上帝博客文章

最新更新