soflomo / log
一个小型模块,帮助实现日志感知类
Requires
- php: >=5.3.3.
- zendframework/zendframework: 2.*
Suggests
- chromephp/chromephp: To enable logging with Chrome-PHP
- firephp/firephp-core: To enable logging with Fire-PHP
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!'); } } }
如果服务已注册到服务管理器中,请获取服务,记录器将被注入。
配置
默认配置是一个具有三个不同编写器的记录器对象
- Fire-PHP 编写器,当 Fire-PHP 已安装时使用;
- Chrome-PHP 编写器,当 Chrome-PHP 已安装时使用;
- 流编写器,写入到
data/log/application.log
。
流从 INFO
(因此只有调试消息被忽略)写入到 EMERG
。然而,它会在发生 ERROR
之前等待日志记录。这意味着,直到发生 ERROR
,所有带有 INFO
、NOTICE
和 WARN
的消息都不会被记录。这导致日志文件很瘦,只有高优先级消息和实际发生错误时的信息性消息。
在 "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
文件。