小编Mat*_*ler的帖子

Zend Framework中Zend_Log的相对路径

我正在尝试找出配置Zend_Log_Writer_Stream实例的最佳方法,以写入相对于我的APPLICATION_PATH的文件名.

例如,使用以下配置:

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = "logs/production.log"
Run Code Online (Sandbox Code Playgroud)

初始化loggger的常规方法是使用应用程序引导资源或执行以下操作:

$logger = Zend_Log::factory($config->resources->log);
Run Code Online (Sandbox Code Playgroud)

这样做的问题是Zend_Log_Writer_Stream :: factory方法将尝试访问相对于当前脚本执行的文件,而不是APPLICATION_PATH.

因为几乎总是index.php里面/ public通常它不是戏剧性的,所以当我在我的单元测试目录中执行单个脚本时,它将使用该目录来建立路径.

理想情况下,我希望能够设置:

resources.log.stream.writerParams.stream = APPLICATION_PATH . "../logs/production.log"
Run Code Online (Sandbox Code Playgroud)

因此它总是使用可预测的位置.我宁愿不必破解Zend_Log继承类的工厂方法来使其工作.

我很想知道其他人是如何解决这个问题的.

bootstrapping zend-framework zend-log

2
推荐指数
1
解决办法
1253
查看次数

标签 统计

bootstrapping ×1

zend-framework ×1

zend-log ×1