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时,它总是写入单个文件。代码如下所示

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

但由于我在配置文件中提供了application.log,它总是在创建application.log!。。。

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

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

我希望通过"application.log"来解决ErrorController.php引发的错误对于应用程序错误,我希望我的Logger类记录错误。。。但我无法确保一次只能有一个流。。。

有线索吗?

问候,

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

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

最好是当您知道将在哪个位置写入时初始化写入程序,然后初始化记录器本身。

最新更新