我正在编写自己的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);
最好是当您知道将在哪个位置写入时初始化写入程序,然后初始化记录器本身。