1

我正在编写自己的 Zend_log 并且难以理解。我必须生成我能够生成的特定于模块的日志,但是我也在创建一个全局的 application.log !我不想要..

在我的 application.ini

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../logs/application.log"

我有引导代码

if ($this->hasPluginResource("log"))
        {
            $r = $this->getPluginResource("log");
            $log = $r->getLog();
            Zend_Registry::set('log',$log);
        }

在我的 Logger 类中,我试图重写 _stream 以便在写入 Log 时它总是写入单个文件 .code 如下

$writerArr=array('stream'=>$logfile,'mode'=>'a');
$writer = Zend_Log_Writer_Stream::factory($writerArr);

但正如我在配置文件中提供了 application.log 一样,它总是在创建 application.log !...

我想覆盖那些流但无法理解如何?任何确保只有一个写入器/流可以写入的方法???...

否则建议我删除 application.ini 和引导代码,但我将无法记录 ErrorController.php 错误...

我希望针对 ErrorController.php 引发的错误和应用程序错误的“application.log”解决方案我希望我的 Logger 类记录错误......但我无法确保一次只有一个流......

有什么线索吗?

问候,

4

1 回答 1

0

尝试删除整个 application.ini 代码并在引导程序本身中创建 zend_log init:

$writer = new Zend_Log_Writer_Stream('[/your/log/file/path]', '[file_open_mode]');
$logger = new Zend_Log($writer);

最好是在知道要在哪个地方编写并在初始化记录器本身之后初始化编写器。

于 2012-09-07T07:14:51.010 回答