7

このエラー「log4j:ERRORFailedtorename」がTomcatサーバーログに表示されます。log4jXMLに複数のDailyRollingFileAppenderがあります。また、各アペンダーは異なるファイルを指します。アプリケーションのインスタンスが実行されているのは1回だけです。Handleユーティリティを使用して、コマンドを実行しました(パラメーターとしてログファイル名を使用)

-f ams-app.logを処理すると、結果はTomcat7.exe pid:5032タイプ:ファイル54C:E:\ apps \ ams \ logs \ ams-app.log

このことから、ファイルにはロックが1つしかないことを前提としています。私の環境WindowsServer2008、tomcat 7.0、Java 6、およびslf4j-log4j12(1.5.6)

この問題は、同じアプリケーションがAIXサーバーでホストされている場合には発生しませんでした。私はこの問題をグーグルで検索しましたが、Windows固有のようです。また、DatedFileAppendersやフォークされたlog4jを使用することにも熱心ではありません。ログバックはそのような問題を解決しますか?この問題を解決する方法についての提案をいただければ幸いです。ありがとう

ここに私のlog4jxml

<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>

4

2 に答える 2

0

私は同じ問題を抱えており、この議論に従ってlog4jをバージョン1.2.15に更新することで修正しました

于 2013-10-08T16:26:41.097 に答える