首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4php配置日志目录

log4php配置日志目录
EN

Stack Overflow用户
提问于 2015-04-14 23:22:57
回答 1查看 1.2K关注 0票数 2

我正在使用xml配置log4php。下面是我的配置:

代码语言:javascript
复制
<appender name="mainAppender" class="LoggerAppenderDailyFile">
    <layout class="LoggerLayoutPattern">
        <param name="conversionPattern" value="%d{Y-m-d H:i:s.u T P} [%logger] [%level],[%method,%location] %message;%ex%newline" />
    </layout>

    <param name="file" value=".././logs/main_log-%s.log" />
    <param name="datePattern" value="Y-m-d" />

</appender>

<logger name="MainLogger">
    <appender_ref ref="mainAppender" />
</logger>

<root>
    <level value="TRACE" />
    <appender_ref ref="mainAppender" />
</root>

我希望日志始终存储在同一目录中,但如果我调用

代码语言:javascript
复制
Logger::getLogger('MyLogger');

在不同的位置。如何获取XML中的父目录?我在想像这样的东西:

代码语言:javascript
复制
<param name="file" value=dirname('/').".././logs/main_log-%s.log" />

这当然是行不通的。通常在php中,为了避免这个问题,我使用:

代码语言:javascript
复制
include_once dirname('/').'.././libs/log4php/Logger.php' ;

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

发布于 2015-04-17 08:04:02

您可以(也许应该)为Log4PHP使用基于PHP数组的配置。这允许您使用动态代码来创建配置。

顺便说一句:有一个神奇的常量__DIR__,它包含当前PHP文件所在的目录。同时,__FILE__包含当前PHP文件的文件名。dirname('/')技巧应该不起作用-它将输出字符串"/" -将其与以"..“开头的路径组合在一起将导致尝试超出根目录的一个级别-这是根目录。

访问路径"."也是无用的,因为点是“当前目录”的同义词。路径中间的一个点不会通向任何地方,它将停留在原来的位置。

所以dirname('/').'.././libs/log4php/Logger.php'等同于"/.././libs/log4php/Logger.php",它等同于"/libs/log4php/Logger.php"。如果你的文件不小心在那里,你可能会误解你的代码是“工作的”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29631268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档