내 프로젝트 중 하나에서 네임 스페이스를 사용하여 로깅을 제어합니다. 다음은 샘플 구성입니다 :
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
<param name="File" value="c:\\tmp\\remoteServerLog.txt" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="3MB" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d %-5p %c - %m%n" />
</layout>
</appender>
<root>
<priority value="ALL" />
</root>
<logger name="NHibernate.SQL">
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
</logger>
<logger name="NHibernate.Cfg">
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
</logger>
<logger name="NHibernate">
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
</logger>
<logger name="MyNameSpace.MyBusinessCore">
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
소스 클래스의 네임 스페이스에 따라 로깅 수준을 조정할 수 있습니다. 따라서 위의 예제에서 NHibernate의 경고와 MyNameSpace.MyBusinessCore (DEBUG 및 TRACE 포함)의 모든 것만 기록합니다.
내가 단지 다음과 같은 추가 할 귀하의 예제에서, 요약하면 : Your.Namespace보다
<root>
<priority value="INFO" />
</root>
<logger name="Your.Namespace ">
<level value="INFO" />
<appender-ref ref="EmailAppender" />
</logger>
는 INFO 수준 로그를 전송합니다.
임계 값을 INFO로 변경하지 않는 이유는 무엇입니까? –
이메일을 보내지 않으려는 다른 INFO 메시지가 있습니다. – DotnetDude