2017-02-08 5 views
2

挨拶StackOverflowのユーザーにlog4netのSmtpAppenderは、私はエラーがあるとき電子メールを送信しますlog4netのを使用してC#のWindowsサービスを持って、件名行

をしきい値を置きます。私たちは現在、 "予期された"エラーと "通常の"エラーを電子メールで受け取るという問題を抱えています。何か問題が起きましたが、サービスはまだ動作しており、何もする必要はありません。したがって、簡単な解決策の1つは、「期待される」エラーを特定し、エラーではなく「警告」としてログに記録することです。

log4netが "WARN"レベルのイベントと "ERROR"レベルのイベントの両方の電子メールを送信でき、件名にレベルが何であるかを識別できるのは素晴らしいことです。そのため、「WARN」レベルはフォルダに自動的にルーティングされ、将来いつか見ることができ、「エラー」を直接識別して調べることができます。

質問:トリガー値、つまり「WARN」または「ERROR」を件名に入力することは可能ですか?

コンフィギュレーションファイルで2つの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に設定すると、ロガーはWarningsを出力しないので、Warn appenderはWarningsを取得しません。

これはトリックを行う必要があります。

関連する問題