I am quite novice with ZF3 and I can't figure out how should I define a logger module as a service and how could I use (reuse) it in other modules. The official documentation is poor from this point of view. Any short example would be good.
Asked
Active
Viewed 219 times
1 Answers
4
If you want to use zend-log in ZF app, after installation you need to do 2 thing:
To register
Zend\Log
in the application config under the 'modules' key.Add config for your logger in global.php or module config
'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, ], ], ], ], ], ], ], ],
after that just take it from Service Manager and use it:
$logger = $container->get('MyLogger'); // <-- the key that you register in config above
$logger->info('Logging info message in the file');
You probably want to take logger from SM and than inject it in a class that you want to use it.
There is a god blog post about Logging with zend-log

tasmaniski
- 4,767
- 3
- 33
- 65
-
And from where comes that `$container` variable? – Kérdezösködő Indián Aug 30 '18 at 10:48
-
$container is in the FACTORY class of your original class, please see my other answer for that https://stackoverflow.com/a/42176170/949273 – tasmaniski Aug 30 '18 at 11:16