2010-05-04 27 views
9

Nếu tôi đặt mức nhật ký thành DEBUG, Tất cả tin nhắn có mức nhật ký> = DEBUG sẽ được ghi/in. Nhưng tôi có thể đặt mức nhật ký thành chỉ DEBUG, sao cho các tin nhắn có cấp nhật ký chỉ với DEBUG sẽ được in. Hoặc có thể đưa ra một phạm vi như in tất cả các thư có cấp độ nhật ký là> = DEBUG nhưng < L ERI?Chỉ có thể đăng nhập một tin nhắn cấp với Log4J

+0

Tôi không nghĩ như vậy, không có. – skaffman

+0

Nếu bạn định làm điều gì đó chống lại thiết kế ban đầu, bạn có thể sửa đổi mã nguồn của nó. Vâng, tại sao không theo thiết kế? –

+0

Đã cố gắng tìm ra điều tương tự cho thời gian LONG. – McTrafik

Trả lời

8

Có thể bạn có thể sử dụng một LevelMatchFilter?

Ở một số trường hợp, Bạn phải ghi nhật ký cho các đầu ra khác nhau theo cấp độ. làm thế nào nó có thể được thực hiện bằng cách cấu hình đơn giản Log4j? Có một số phương pháp bên dưới.

http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

1

Như đã nói Jarle bạn phải sử dụng LevelMatchFilter. Tôi sẽ chứng minh nó với một kỳ thi rất đơn giản:

log4j.rootLogger = WARN, admin 
log4j.appender.admin=org.apache.log4j.rolling.RollingFileAppender 
     log4j.appender.admin.rollingPolicy = org.apache.log4j.rolling.TimeBasedRollingPolicy 
     log4j.appender.admin.rollingPolicy.FileNamePattern = Files\\TestLevels-%d{dd-MM-yyy}.txt 
     log4j.appender.admin.layout = org.apache.log4j.PatternLayout 
     log4j.appender.admin.layout.ConversionPattern = Date: %d{dd-MM-yyyy} Time: %d{HH:mm:ss} Message [%m]%n 
     log4j.appender.admin.filter.01=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.01.LevelToMatch=FATAL 
     log4j.appender.admin.filter.01.AcceptOnMatch=false 
     log4j.appender.admin.filter.02=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.02.LevelToMatch=ERROR 
     log4j.appender.admin.filter.02.AcceptOnMatch=true 
     log4j.appender.admin.filter.03=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.03.LevelToMatch=WARN 
     log4j.appender.admin.filter.03.AcceptOnMatch=false 

Trong nguồn của tôi, tôi nối thêm chỉ LỖI tin nhắn đến nộp với tên TestLevels.txt

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