Đó là mát mẻ như thế nào bộ lọc log4net tất cả có thể được kết hợp để đạt được kết quả mong muốn. Tất cả các mục nhật ký theo mặc định có bố cục bộ lọc "trung tính" và log4net theo mặc định ghi nhật ký tất cả các mục trung tính.
gì LevelRangeFilter
sẽ làm là nếu mức độ mục nằm trong phạm vi, nó sẽ thiết lập bố trí bộ lọc để "Chấp nhận" (hoặc để bố trí của nó như nó đã được nếu tham số acceptOnMatch
được thiết lập để false
) và nó sẽ đánh dấu tất cả các mục nhập không nằm trong phạm vi có bố cục "Từ chối".
Các LevelMatchFilter
sẽ thiết lập bố trí cho các bộ lọc định trong tham số levelToMatch
"Accept" trừ khi acceptToMatch
được thiết lập để false
, sau đó nó sẽ thiết lập phù hợp với các mục để "Từ chối", mục chưa từng có sẽ bị bỏ lại với những gì họ đã trước.
Vì vậy, những gì bạn có thể làm là sử dụng một sự kết hợp của hai bộ lọc để có được những gì bạn muốn:
<appender name="FilteredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL" />
<levelMin value="ERROR" />
</filter>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN" />
<acceptOnMatch value="false" />
</filter>
</appender>
này sẽ cho phép bạn dễ dàng chuyển đổi các cảnh báo mức độ và tắt. Tất cả các mục bên ngoài phạm vi đều đã được đánh dấu là "Từ chối" và LevelMatchFilter
ở đây cũng sẽ đánh dấu các mục mức WARN là Deny cũng như vậy không yêu cầu DenyAllFilter
.
Hey! Cảm ơn bạn đã trả lời nhanh. Nó có thể được thực hiện theo chương trình không? tôi chỉ tìm thấy cách thay đổi cấp độ nhật ký của trình ghi nhật ký (root), chứ không phải từng ứng cử viên '. –
xin lỗi, tôi đã bỏ lỡ bình luận của bạn. nên có thể lập trình là tốt. ở đây bạn có thể xem cách truy cập tất cả các ứng dụng: http://stackoverflow.com/questions/3016108/change-log4net-conversion-pattern-or-layout-at-runtime/3031867#3031867 –