gpt4 book ai didi

zend-framework - Zend Framework 中 Zend_Log 的相对路径

转载 作者:行者123 更新时间:2023-12-04 04:30:46 24 4
gpt4 key购买 nike

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

例如,使用以下配置:

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = "logs/production.log"

初始化记录器的正常方法是使用应用程序 Bootstrap 资源或执行以下操作:

$logger = Zend_Log::factory($config->resources->log);

问题在于 Zend_Log_Writer_Stream::factory 方法将尝试访问与当前脚本执行相关的文件,而不是 APPLICATION_PATH。

因为几乎总是/public 中的 index.php 启动这通常不是戏剧,但是当我在我的单元测试目录中执行单个脚本时,它将使用该目录作为路径的基础。

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

resources.log.stream.writerParams.stream = APPLICATION_PATH . "../logs/production.log"

因此它始终使用可预测的位置。我宁愿不必破解 Zend_Log 继承类的工厂方法来完成这项工作。

我很想听听其他人是如何解决这个问题的。

最佳答案

resources.log.stream.writerParams.stream = APPLICATION_PATH "../logs/production.log"

应该可以。 parse_ini_file() (由 Zend_Config_Ini 使用)允许使用常量 - 但连接不像 PHP 那样工作(使用 . 运算符);只需将静态字符串附加到常量(如果 APPLICATION_PATH 不以 / 结尾,您可能需要额外的 /)。

关于zend-framework - Zend Framework 中 Zend_Log 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com