Log4Netを使用して、アプリケーションでさまざまな種類のイベントをすべて記録しています。したがって、私はfileAppenderとsmtpAppenderを設定しました。 fileAppenderはすべてのログを記録していますが、smptAppenderはログレベルがFATALの場合にのみ電子メールを送信します。Log4Net smtpappenderがレベルフィルタを無視しています
今、Log4Netは私にERRORとFATALの両方のレベルのメールを送信しています。私の設定です
:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\Temp\xxx.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<maxSizeRollBackups value="150" />
<layout type="log4net.Layout.PatternLayout">
<header value="DateTime | Thread | Level | ClassName | Message" />
<conversionPattern value="%date | %thread | %-5level | %logger | %message%newline" />
</layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<acceptOnMatch value="true" />
<levelToMatch value="FATAL" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<to value="xxx" />
<from value="xxx" />
<subject value="Error" />
<smtpHost value="xxx" />
<bufferSize value="512" />
<lossy value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date | %thread | %-5level | %logger | %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
<appender-ref ref="SmtpAppender" />
</root>
</log4net>
私は[1.2.15] 2.0.5を最新のlog4netのバージョンを使用しています。
奇妙なことに、smptAppenderはこの設定でINFOとDEBUGレベルをフィルタリングしています。
レベル・マッチ・フィルタの代わりにレベル・エバリュエーターまたはレベル範囲を使用することもできませんでした。
レベルの評価:
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="FATAL"/>
</evaluator>
レベル範囲フィルタ:
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="FATAL"/>
<param name="LevelMax" value="FATAL"/>
</filter>
私はこのトピックに関する多くのスレッドがここにStackOverflowの上があることを知っているが、それらのどれも私の問題で私を助けることができませんでした。同じ話題で
スレッド:
How do I configure a log4net SmtpAppender to only send me e-mails when a certain level is hit?
Log4j2: SMTPAppender does not send mails with error or fatal level
Log4Net LevelEvaluator Ignored when bufferSize greater than 1 for SmtpAppender