ebittleman/monolog-zf2

zf2的Monolog包装器

1.1.0 2015-06-02 18:10 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:43:47 UTC


README

Build Status Packagist

此项目是Monolog日志记录器的基本包装,您可以在此处查看所有功能这里

安装

安装包

composer require ebittleman/monolog-zf2

启用Zf2模块

更新您的应用程序配置以包括该模块。

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

配置示例

以下配置将在服务管理器中提供2个不同的日志记录器,服务名称为数组的键。每个日志记录器都配置了处理器列表,每个处理器都有一个handlerClassargs,这些将被传递给处理器的构造函数。此示例可在/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',
                    )
                )
            )
        ),
    )
);

用法

<?php
namespace MyNamespace;

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

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

初始化器依赖注入

以下服务将使用配置中定义的默认日志记录器进行初始化。要选择要注入的特定日志记录器,您需要取消注释服务的LOGGER常量。

<?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');
    }
}