2012-11-16 30 views
6

Tôi gặp lỗi này "log4j: ERROR Không đổi tên được" trong nhật ký máy chủ tomcat của tôi. Tôi có nhiều DailyRollingFileAppender trong log4j XML của mình. Và mỗi appender trỏ đến tập tin khác nhau. Chỉ một lần của ứng dụng đang chạy. tôi đã sử dụng tiện ích Xử lý và chạy lệnh (với tên file log như tham số)log4j: ERROR Không thể đổi tên

xử lý -f AMS-app.log và kết quả là Tomcat7.exe pid: 5032 loại: File 54C: E: apps \ \ ams \ logs \ ams-app.log

Từ đây tôi giả sử chỉ có một khóa trên tệp. Môi trường của tôi Windows Server 2008, tomcat 7.0 và Java 6 và slf4j-log4j12 (1.5.6)

Sự cố này không xảy ra khi cùng một ứng dụng được lưu trữ trên máy chủ AIX. Tôi googled vấn đề này và nó có vẻ là cửa sổ specfic. Ngoài ra tôi không muốn sử dụng DatedFileAppenders hoặc bất kỳ log4j phân chia nào. Logback có giải quyết được các vấn đề đó hay không. Bất kỳ đề xuất nào về cách giải quyết vấn đề này được đánh giá cao. Cảm ơn

đây log4j xml tôi

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

+1

Bạn có thể pls gửi cấu hình log4j? –

Trả lời

0

tôi đã cùng một vấn đề và cố định nó bằng cách cập nhật lên phiên bản 1.2.15 log4j theo this discussion

+0

Chúng tôi sử dụng log4j 1.2.15 nhưng chúng tôi vẫn gặp vấn đề tương tự với phiên bản đó. –

+1

Tôi đã tìm ra giải pháp cho vấn đề của mình và muốn chia sẻ ở đây. Khi thêm appender-ref vào thẻ logger, nó sẽ ném lỗi đổi tên. Khi thêm appender-ref vào thẻ gốc, nó không bao giờ ném lỗi đó. –

Các vấn đề liên quan