Zend_log创建两个日志文件

时间:2012-09-07 06:36:00

标签: zend-framework zend-log

我正在编写自己的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和bootstrap代码但是我将无法记录ErrorController.php错误...

我希望解决“application.log”解决ErrorController.php抛出的错误 对于应用程序错误,我希望我的Logger类记录错误...但我无法一次确保单个流...

有任何线索吗?

此致

1 个答案:

答案 0 :(得分:0)

尝试删除整个application.ini代码并在bootstrap中创建zend_log init:

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

如果您在知道将在哪个位置写作并在初始化记录器本身之后初始化编写器,那么最好。