2017-07-18 179 views
0

我已经审查了其他相关的问题,但还没有找到答案。看来在https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.html的javadocs不正确和/或不完整。至少该元素看起来有一个虚假的双引号。 我在调试模式下启动,它看起来都很好。但是,我找不到日志文件。我们有其他的定制appender工作正常,但我试图用OTB解决方案替换它们。 这里是我的配置:演员RollingFileAppender没有创建文件

<appender name="file" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <param name="threshold" value="debug" /> 
    <rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="logs/My_Server.%d{yyyy-MM-dd-hh}.log"/> 
    </rollingPolicy> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n"/> 
    </layout> 
    </appender> 

    <appender name="ASYNCfile" class="org.apache.log4j.AsyncAppender"> 
    <param name="BufferSize" value="500"/> 
    <param name="blocking" value="false"/> 
    <appender-ref ref="file"/> 
    </appender> 

<root> 
    <priority value="INFO"/> 
    <appender-ref ref="ASYNCfile"/> 
    <appender-ref ref="console"/> 
    </root> 

和调试控制台:

log4j: Attaching appender named [file] to appender named [ASYNCfile]. 
log4j: Class name: [org.apache.log4j.rolling.RollingFileAppender] 
log4j: Setting property [threshold] to [DEBUG]. 
log4j: Setting property [fileNamePattern] to [logs/My_Server.%d{yyyy-MM-dd-hh}.log]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n]. 
log4j: setFile called: logs/My_Server.2017-07-17-05.log, true 
log4j: setFile ended 

我没有看到在控制台输出中与此相关的任何错误 - 就是没有被发现的文件。

+0

其实,我刚刚搜索了我的硬盘驱动器,并找到了一个意外的位置的日志文件。它们位于Eclipse安装目录中。我正在运行tomcat,其他appender正在将日志写入Eclipse添加服务器时创建的tomcat运行时文件夹中。现在,当我没有指定任何我知道的内容时,我需要找出他们为什么要写入两个不同的位置。 (其他人在我之前配置了log4j ...) – Edward

+0

其他相关的帖子指出FileNamePattern值应该是绝对路径。至少在文件的位置不会有任何混淆。 Javadocs在相对时不描述处理这个值。最好的建议可能是使用$ {catalina.base}/logs/yourFileNamepattern。希望这篇文章对别人有帮助。还可以使用log4j配置debug = true标志来帮助排除故障。 – Edward

回答

0

随着进一步的工作,我回答了我自己的问题。查看发布的评论。