2017-02-08 8 views
2

인사에 유래 사용자, Log4Net SmtpAppender는 제목 줄에

내가 오류가있을 때 이메일을 보내드립니다 log4net를 사용하여 C#을 윈도우 서비스가이 임계 값을 넣어. 우리는 이제 "예상"및 "정상"오류에 대한 이메일을받는 문제를 가지고 있습니다. 즉, 문제가 발생했으나 서비스는 여전히 작동 중이며 수행해야 할 것이 없습니다. 따라서 한 가지 쉬운 해결책은 "예상 된"오류를 식별하고 오류 대신 "경고"로 기록하는 것입니다.

log4net이 "WARN"레벨 및 "ERROR"레벨 이벤트 모두에 대한 전자 메일을 보낼 수 있으면 좋을 것입니다. 제목 줄에 레벨이 무엇인지 식별하십시오. 따라서 "WARN"레벨은 폴더에 자동으로 라우팅되어 나중에 언젠가는 볼 수 있으며 "ERRORS"는 직접 식별하여 볼 수 있습니다.

질문 : "WARN"또는 "ERROR"트리거 값을 제목 줄에 가져올 수 있습니까?

구성 파일에서 두 개의 SmtpAppender 블록을 만들려고했으나 작동하지 않았습니다.

도움 주셔서 감사합니다. 당신은이 같은 두 개의 분리 된 펜더 및 설치 각 하나에 대한 LevelRangeFilter 만들 수 있습니다

답변

3

: 다음

<appender name="WarnSmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="WARN" /> 
     <levelMax value="WARN" /> 
    </filter> 
    <to value="[email protected]" /> 
    <from value="[email protected]" /> 
    <subject value="Warning logging message" /> 
    <smtpHost value="SMTPServer.domain.com" /> 
    <bufferSize value="512" /> 
    <lossy value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" /> 
    </layout> 
</appender> 

<appender name="ErrSmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="ERROR" /> 
     <levelMax value="ERROR" /> 
    </filter> 
    <to value="[email protected]" /> 
    <from value="[email protected]" /> 
    <subject value="Error logging message" /> 
    <smtpHost value="SMTPServer.domain.com" /> 
    <bufferSize value="512" /> 
    <lossy value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" /> 
    </layout> 
</appender> 

을하면 설정을 모두 펜더와 로거 :

<root> 
    <!-- Log4Net available levels: 
     ALL DEBUG INFO WARN ERROR FATAL OFF--> 
    <level value="WARN" /> 
    <appender-ref ref="WarnSmtpAppender" /> 
    <appender-ref ref="ErrSmtpAppender" /> 
</root> 

는 LOGGER 있습니다 수준은 WARN 이하로 설정해야합니다. ERROR로 설정하면 로거는 경고를 내 보내지 않으므로 경고 appender는 경고를 표시하지 않습니다.

트릭을 수행해야합니다.