그것은 모든 원하는 출력을 달성하기 위해 결합 할 수있는 방법을 log4net 필터 멋지다. 기본적으로 모든 로그 항목에는 "중립"필터 처리가 있고 log4net은 기본적으로 중립 인 모든 항목을 기록합니다.
무엇 LevelRangeFilter
할 것하면 항목의 레벨이 범위에있는 경우, 그것은 "동의"하는 필터 처분을 설정합니다 (또는이 acceptOnMatch
매개 변수가 false
로 설정되어있는 경우였다로서의 처분을 떠나)을하고있다 "거부"처분으로 범위에 포함되지 않은 모든 항목을 표시합니다.
LevelMatchFilter
다음은, 타의 추종을 불허하는 항목들이 무엇인지에 남아있을 것 "거부"로 일치하는 항목을 설정할 것이라고 acceptToMatch
가 false
로 설정되어 있지 않으면 "동의"로 levelToMatch
매개 변수에 지정된 필터의 처분을 설정합니다 전에.
<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>
이 쉽게가에 수준을 경고 Off로 토글 수 :
은 그래서 당신이 할 수있는 것은 당신이 원하는 것을 얻을 수있는 두 개의 필터의 조합을 사용합니다. 범위를 벗어나는 모든 항목은 이미 모두 "Deny"로 표시되어 있으며 LevelMatchFilter
은 WARN 수준 항목을 Deny로 표시하므로 DenyAllFilter
은 필요하지 않습니다.
안녕하세요! 빠른 답장을 보내 주셔서 감사합니다. 프로그래밍 방식으로 완료 할 수 있습니까? Logger의 (루트) 로그 레벨을 변경하는 방법을 찾았습니다. 각각의 appenders가 아닙니다. –
죄송합니다, 귀하의 의견을 싶었어요. 프로그래밍 방식으로도 가능해야합니다. 여기에 모든 애펜서에 접근하는 방법을 볼 수 있습니다 : http://stackoverflow.com/questions/3016108/change-log4net-conversion-pattern-or-layout-at-runtime/3031867#3031867 –