ebittleman/monolog-zf2

Monolog wrapper for zf2

1.1.0 2015-06-02 18:10 UTC

This package is not auto-updated.

Last update: 2024-04-13 15:28:37 UTC


README

Build Status Packagist

This project is a basic wrapper for the Monolog logger check it out for all the bells and whistles here.

Installation

Install the Package

composer require ebittleman/monolog-zf2

Enable Zf2 Module

Update your application config to include the module.

return array(
    'modules' => array(
        ...YOUR MODULES...,
        'MonologZf2'
    ),
    'module_listener_options' => array(
        'config_glob_paths' => array(
            ...YOUR CONFIG PATHS...
        ),
        'module_paths' => array(
            ...YOUR MODULES PATHS...
        )
    )
);

Config Example

The following configuration will make 2 different loggers available from the service manager where the service name is the array key. Each logger is configured with a list of handlers, each of which has a handlerClass and args that will be passed to the handler's constructor. This example can be found in /config/monolog.global.dist

<?php
use Monolog\Logger;
use Monolog\Handler\ErrorLogHandler;

return array(
    'monolog' => array(
        'defaultLogger' => 'Monolog\Log',
        'logs' => array(
            'Monolog\Log' => array(
                    'handlers' => array(
                        array(
                            'handlerClass' => 'Monolog\Handler\StreamHandler',
                            'args' => array(
                                '/tmp/log.log',
                                Logger::DEBUG
                            )
                        ),
                        array(
                            'handlerClass' => 'Monolog\Handler\ErrorLogHandler',
                            'args' => array(
                                ErrorLogHandler::OPERATING_SYSTEM,
                                Logger::ERROR
                        )
                    )
                )
            ),
            'Monolog\ErrorLog' => array(
                'handlers' => array(
                    array(
                        'handlerClass' => 'Monolog\Handler\ErrorLogHandler',
                    )
                )
            )
        ),
    )
);

Usage

<?php
namespace MyNamespace;

class SomeFactory
{
    public function __invoke($serviceLocator)
    {
        $defaultLogger = $serviceLocator->get('Monolog\Log');
        $errorLogger = $serviceLocator->get('Monolog\ErrorLog');

        return new Service($defaultLogger, $errorLogger);
    }
}

Initializer Dependency Injection

The following service will be intialized with the default logger defined in the configuration. In order to select a specific logger to be injected you would un-comment the LOGGER constant of the service.

<?php
namespace MyNamespace

use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerAwareTrait;

class ExampleService implements LoggerAwareInterface
{
    use LoggerAwareTrait;

    // const LOGGER = 'Someother\Log';

    public function serviceCall()
    {
        $this->logger->debug('write this to the log');
    }
}