Zend 3 - использование логгера в качестве сервиса
Я довольно новичок в ZF3 и не могу понять, как мне определить модуль логгера как сервис и как я могу использовать (повторно использовать) его в других модулях. Официальная документация плоха с этой точки зрения. Любой короткий пример был бы хорош.
1 ответ
Решение
Если вы хотите использовать Zend-Log в приложении ZF, после установки вам нужно сделать 2 вещи:
Зарегистрироваться
Zend\Log
в конфигурации приложения под ключом "модули".Добавьте конфиг для вашего логгера в global.php или конфиг модуля
'log' => [ 'MyLogger' => [ 'writers' => [ 'stream' => [ 'name' => 'stream', 'priority' => \Zend\Log\Logger::ALERT, 'options' => [ 'stream' => '/tmp/php_errors.log', 'formatter' => [ 'name' => \Zend\Log\Formatter\Simple::class, 'options' => [ 'format' => '%timestamp% %priorityName% (%priority%): %message% %extra%', 'dateTimeFormat' => 'c', ], ], 'filters' => [ 'priority' => [ 'name' => 'priority', 'options' => [ 'operator' => '<=', 'priority' => \Zend\Log\Logger::INFO, ], ], ], ], ], ], ], ],
после этого просто возьмите его из Service Manager и используйте его:
$logger = $container->get('MyLogger'); // <-- the key that you register in config above
$logger->info('Logging info message in the file');
Вы, вероятно, хотите взять регистратор у SM, а затем внедрить его в класс, который вы хотите использовать.
Существует блог в блоге о регистрации с помощью Zend-Log