2011-01-05 3 views
5

Log4j 1.2 có cung cấp bất kỳ cơ chế nào cho nhật ký lưu trữ hàng ngày không?Log4j có cung cấp bất kỳ cơ chế nào cho nhật ký lưu trữ hàng ngày không?

Mọi người đều nói rằng tôi có thể làm điều đó thông qua org.apache.log4j.rolling.TimeBasedRollingPolicy nhưng trong nguồn 1.2.15 tôi không thấy bất kỳ lớp TimeBasedRollingPolicy nào.

tôi tìm ra giải pháp:

<appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 

    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="ActiveFileName" value="${jboss.server.log.dir}/server.log"/> 
     <!-- roll log file once a day --> 
     <param name="FileNamePattern" value="${jboss.server.log.dir}/archives/server.log.%d.gz"/> 
    </rollingPolicy> 

    <!-- A PatternLayout that limits the number of lines in stack traces --> 
    <layout class="com.mtvi.log4j.StackTraceLimitingPatternLayout"> 
     <!-- The full pattern: Date MS Priority [Category] (Thread) Message\n --> 
     <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/> 
    </layout> 
</appender> 
+0

@ user253202 Xin chào, nếu bạn tìm thấy giải pháp cho yêu cầu của mình bằng apache-log4j-extras, hãy đặt nó ở đây để chia sẻ với người khác. Đánh dấu nó là câu trả lời của riêng bạn. – jbx

Trả lời

3

gì bạn hỏi có thể được thực hiện bằng DailyRollingFileAppender.

+1

Có, nhưng nó không cho phép tôi đặt nhật ký cuộn vào thư mục cụ thể. Tôi tìm thấy một giải pháp - apache-log4j-extras – user253202

4

Bạn cần phải xác định người phụ trách của mình là DailyRollingFileAppender và xác định mẫu ngày tháng để được chi tiết đến từng ngày. Sau đây là một appender ví dụ có tên 'file' mà kết quả đầu ra cho application.log và cuộn các tập tin hàng ngày bằng cách phụ thêm ngày kết thúc sau nửa đêm và bắt đầu một tập tin mới.

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=application.log 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d %5p [%t] - %m%n 

Sau đó, bạn sẽ cần xác định trình ghi nhật ký (hoặc rootLogger) của mình để xuất cho người phụ trách này. Ví dụ:

log4j.rootLogger=debug, file 
+1

Ok, và làm thế nào để làm cho nó cuộn tập tin không cùng một thư mục như tập tin ban đầu, nhưng để bất kỳ thư mục được xác định khác? – user253202