soflomo/log

一个小型模块,帮助实现日志感知类

dev-master 2013-02-01 14:33 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:02:26 UTC


README

Soflomo\Log 是一个小型模块,它提供了一种即插即用的配置、实例化和初始化 Zend\Log\Logger 对象的方式。其目的是在您的 Zend Framework 2 应用程序中仅通过一个小型配置文件启用日志记录。该模块对编写器的选择持有观点,但您可以自由地配置自己的。

安装

Soflomo\Log 通过 composer 提供。将 "soflomo/log" 添加到您的 composer.json 列表中。在 Soflomo\Log 的开发过程中,您可以指定最新可用的版本。

"soflomo/log": "dev-master"

在您的 config/application.config.php 文件中启用该模块。将 Soflomo\Log 添加到已启用模块的列表中。日志记录应该能够正常工作。

使用

此模块提供了一个预先配置的 Zend\Log\Logger 实例。记录器通过各种编写器连接。如果您使用记录器记录某些内容,它将消息推送到所有编写器。编写器本身会检查消息的类型("优先级"),以确定是否需要实际执行写入操作。通过这种设置,您可以将所有消息(包括调试消息)写入控制台编写器(Fire-PHP 或 Chrome-PHP),并且只将关键错误写入文件流。

要获取注入的记录器,使您的服务实现 `Zend\Log\LoggerAwareInterface`。然后从服务管理器中获取您的服务。

namespace MyModule\Service;

use Zend\Log\Logger;
use Zend\Log\LoggerAwareInterface;

class MyService implements LoggerAwareInterface
{
    protected $logger;

    public function setLogger(Logger $logger)
    {
        $this->logger = $logger;
    }

    public function doSomething()
    {
        // Do your work

        if (null !== $this->logger) {
            $this->logger->info('Something done here!');
        }
    }
}

如果服务已注册到服务管理器中,请获取服务,记录器将被注入。

配置

默认配置是一个具有三个不同编写器的记录器对象

  1. Fire-PHP 编写器,当 Fire-PHP 已安装时使用;
  2. Chrome-PHP 编写器,当 Chrome-PHP 已安装时使用;
  3. 流编写器,写入到 data/log/application.log

流从 INFO (因此只有调试消息被忽略)写入到 EMERG。然而,它会在发生 ERROR 之前等待日志记录。这意味着,直到发生 ERROR,所有带有 INFONOTICEWARN 的消息都不会被记录。这导致日志文件很瘦,只有高优先级消息和实际发生错误时的信息性消息。

在 "writers" 键中配置三个编写器的行为。例如,要禁用 FirePHP 日志记录并修改流编写器的路径,请将以下内容放入配置文件中

return array(
    'soflomo_log' => array(
        'writers' => array(
            'firephp' => array(
                'enabled' => false,
            ),
            'stream'  => array(
                'stream'  => 'data-something/log-else/application.log',
            ),
        ),
    ),
);

对于所有选项,请检查此模块的 config/module.config.php 文件。