나는 Windows 이벤트 로그에 log4netEventLogAppender
을 사용하여 로그온하려고하는 콘솔 응용 프로그램이 있습니다. 두 개의 RollingFileAppender
도 있지만 제대로 작동합니다.Log4net EventLogAppender는 루트 로거에서만 작동합니다. 이유가 무엇입니까?
<logger Name="EventLogger">
<level value="INFO" />
<appender-ref ref="EventLogAppenderInfo"/>
<appender-ref ref="EventLogAppenderError"/>
</logger>
이 식으로 EventLogger
상속 :
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderInfo" />
<appender-ref ref="RollingFileAppenderDebug" />
</root>
EventLogAppender
의는 다음과 같이 구성 EventLogger
라는 로거에 있습니다
RollingFileAppender
의는 다음과 같이 구성 루트 로거에 루트로부터 appenders. EventLogger
으로 로그를 남기면 로그 파일에도 기록됩니다. 모든 정보 항목이 포함 된 Windows 이벤트 로그를 스팸하지 않으려 고하기 때문에 이런 식으로 해본 이유는 중요한 것입니다. 하지만 모든 오류를 기록하고 싶습니다.
이 내가 로거 얻을하는 방법입니다 : 모든 수준에 뭔가를 기록하는 eventlog
객체를 사용하여,
private static readonly log4net.ILog eventLog = log4net.LogManager.GetLogger("EventLogger");
다음과 같이 구성 문제
을 log4net는 Windows에 기록하지 않습니다 이벤트 로그이지만 로그 파일에 기록하므로 root의 appender가 작동합니다.
EventLogAppender
을 루트에두면 작동하지만, 이벤트 로그에 기록하지 않으려는 정보 수준 항목도 기록합니다.
권한 문제가 아니라 소스가 이미 생성되어 액세스 가능하다고 생각됩니다. 사람이 궁금하다면
여기는 두 EventLogAppender
의 위치 :
<appender name="EventLogAppenderInfo" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<appender name="EventLogAppenderError" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<IgnoresException value="False"/>
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline%exception" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL" />
</filter>
</appender>
난 아무것도 생각할 수 없다이 일을 왜 log4net, 사람이 솔루션을의 경우는 많이 주시면 감사하겠습니다!
건배!