log4j:ERROR重命名失败 [英] log4j:ERROR Failed to rename

查看:139
本文介绍了log4j:ERROR重命名失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的tomcat服务器日志中出现此错误"log4j:ERROR重命名失败". 我的log4j XML中有多个DailyRollingFileAppender.每个附加程序都指向不同的文件.该应用程序实例仅运行一次. 我使用了Handle实用程序并运行了命令(以日志文件名作为参数)

I get this error "log4j:ERROR Failed to rename" in my tomcat server log. I have multiple DailyRollingFileAppender in my log4j XML. And each appender points to different file. Only once instance of the application is running. I used Handle utility and run the command (with log file name as parameter)

句柄-f ams-app.log 结果是 Tomcat7.exe pid:5032类型:文件54C:E:\ apps \ ams \ logs \ ams-app.log

handle -f ams-app.log and the result is Tomcat7.exe pid: 5032 type: File 54C: E:\apps\ams\logs\ams-app.log

据此,我假设文件上只有一个锁. 我的环境是Windows Server 2008,tomcat 7.0和Java 6和slf4j-log4j12(1.5.6)

From this I assume there is only one lock on the file. My environment Windows Server 2008, tomcat 7.0 and Java 6 and slf4j-log4j12(1.5.6)

当在AIX服务器上托管相同的应用程序时,不会发生此问题. 我用谷歌搜索了这个问题,它似乎是Windows特有的. 另外,我也不希望使用DatedFileAppenders或任何派生的log4j. 登录是否解决了此类问题. 任何有关如何解决此问题的建议,不胜感激. 谢谢

This problem was not happening when same application hosted on AIX server. I googled this problem and it seems to be windows specfic. Also I am not keen to use DatedFileAppenders or any forked log4j. Does logback solve such issues. Any suggestions on how to solve this problem is appreciated. Thanks

这是我的log4j xml

here my log4j xml

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE_APPENDER" class="org.apache.log4j.ConsoleAppender">
    <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
    <param name="Target" value="System.out"/>
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">     
        <param name="ConversionPattern" value="%n %d{yyyy/MM/dd HH:mm:ss} %-5p %x %M(%F:%L) - %m  %n"/>
    </layout>
</appender>

<appender name="APP_APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
    <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
    <param name="datePattern" value="yyyy-MM-dd"/>
    <param name="file" value="E:/apps/ams/logs/ams-app.log"/>
    <param name="append" value="true"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%n %d{yyyy/MM/dd HH:mm:ss} %-5p %x %M(%F:%L) - %m  %n"/>
    </layout>        
</appender>

<appender name="SQL_APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
    <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
    <param name="datePattern" value="yyyy-MM-dd"/>
    <param name="file" value="E:/apps/ams/logs/ams-sql.log"/>
    <param name="append" value="true"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%n %d{yyyy/MM/dd HH:mm:ss} %-5p %x %M(%F:%L) - %m  %n"/>
    </layout>
</appender>

<appender name="Quartz_APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
    <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
    <param name="datePattern" value="yyyy-MM-dd"/>
    <param name="file" value="E:/apps/ams/logs/ams-Quartz.log"/>
    <param name="append" value="true"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%n %d{yyyy/MM/dd HH:mm:ss} %-5p %x %M(%F:%L) - %m  %n"/>
    </layout>
</appender>


<logger name="org.springframework"><level value="WARN"/></logger>
<logger name="flex.messaging.log.ServletLogTarget"><level value="WARN" /></logger>
<logger name="net.sf.jasperreports"><level value="WARN" /></logger>
<logger name="net.sf.jasperreports.engine.fill"><level value="WARN" /></logger> 
<logger name="org.apache.commons.beanutils"><level value="WARN" /></logger>
<logger name="jdbc.sqltiming" additivity="false"><level value="DEBUG"/><appender-ref ref="SQL_APPENDER"/></logger>
<logger name="org.quartz" additivity="false"><level value="WARN" /><appender-ref ref="Quartz_APPENDER"/></logger>
<logger name="org.quartz.SchedulerException"><level value="ERROR" /><appender-ref ref="MAIL_APPENDER"/></logger>     
<logger name="org.hmil.ams.BatchDAO" additivity="false"><level value="INFO"/><appender-ref ref="Quartz_APPENDER"/></logger>
<root>      
    <priority value="debug"></priority> 
    <appender-ref ref="APP_APPENDER" />      
    <appender-ref ref="CONSOLE_APPENDER"/>
</root>

推荐答案

看来,如果您正在运行Windows,这是一个已知的错误:

It appears that if you're running windows this is a known bug:

请参阅此处: http://do.whileloop.org/2014/02/14/log4j-rolling-file-appenders-in-windows/

请参阅此处: https://issues.apache.org/bugzilla/show_bug.cgi?id=29726

还有这里: http://www.coderanch.com/t /424837/java/java/Log-log-file-rolled-day

这篇关于log4j:ERROR重命名失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆