2012-04-11 27 views
5

tôi đang cố gắng để tạo ra appenders 'khác nhau' dựa trên mức độ khác nhau nhưng cho đến nay tôi không thể tìm thấy một cách để cô lập các mức khai thác gỗ ....Tạo các bản ghi khác nhau dựa trên mức độ khai thác gỗ trong log4j

<category name="com.sample" additivity="false"> 
    <priority value="INFO" /> 
    <appender-ref ref="AllAsync"/> 
    <appender-ref ref="ConsoleAppender"/> 
    </category> 

Tôi cần một cách để có thể hạ cánh chỉ INFO các bản ghi ưu tiên được nối thêm. Khi đăng nhập cấp độ INFO cũng đặt trên DEBUG đánh dấu logger là tốt ... điều này không giúp tôi ra ngoài.

Một điều nữa là cho gói 'cùng' Tôi không thể xác định appenders khai thác gỗ khác nhau:

 <category name="com.sample" additivity="false"> 
      <priority value="INFO" /> 
      <appender-ref ref="AllAsync"/> 
      <appender-ref ref="ConsoleAppender"/> 
      </category> 

    <category name="com.sample" additivity="false"> 
     <priority value="DEBUG" /> 
     <appender-ref ref="AllAsync"/> 
     <appender-ref ref="ConsoleAppender"/> 
     </category> 

Ở đây tôi nhận được lỗi gì đó như:

log4j:ERROR Attempted to append to closed appender named [AllAsync]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender]. 
+1

Bạn có thể sử dụng ngưỡng để ngăn chặn bất kỳ điều gì thấp hơn mức X trong tệp nhật ký, nhưng tôi không tin rằng có cách ngăn việc ghi nhật ký cao hơn cấp độ X trong tệp nhật ký. –

Trả lời

2

Bạn có thể lọc theo cấp đăng nhập chính xác sử dụng một LevelMatchFilter theo log4j Faq và wiki.

<filter class="org.apache.log4j.varia.LevelMatchFilter"> 
     <param name="LevelToMatch" value="info"/> 
     <param name="AcceptOnMatch" value="true"/> 
</filter> 

Ví dụ here.

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