1

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.

halfpastfour.am
  • 5,764
  • 3
  • 44
  • 61

1 Answers1

4

If you want to use zend-log in ZF app, after installation you need to do 2 thing:

  1. To register Zend\Log in the application config under the 'modules' key.

  2. 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