使用 SmtpAppender 仅在记录错误或致命错误时发送电子邮件
Using SmtpAppender to only send emails when logging an error or fatal
我正在使用 log4net 来记录不同类型的消息。
我在记录消息时添加了 SmtpAppender 以向特定用户发送电子邮件。
但是,我想要实现的是仅在记录错误或致命错误时才能够发送电子邮件。
根据我在 web.config 文件中的当前配置,我收到两封电子邮件,一封是关于错误的,另一封是关于其余日志的。
Global.asax.cs:
logger.Info("Info");
logger.Warn("Warning");
logger.Fatal("Fatal");
logger.Error("exception");
web.config:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="bla@bla.com" />
<from value="bla@bla.com" />
<subject value="test logging message" />
<smtpHost value="*******" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger- %message%newline%newline%newline" />
</layout>
</appender>
尝试使用:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
...
<threshold value="WARN"/>
...
</appender>
(或 threshold value="ERROR"
因为你说你想限制错误和致命级别)而不是:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
...
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
...
</appender>
log4net 文档或 this message in the log4net user mailing list 解释了差异。
我找到了解决方案,我应该将此标记添加到 SmtpAppender:
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
我正在使用 log4net 来记录不同类型的消息。 我在记录消息时添加了 SmtpAppender 以向特定用户发送电子邮件。 但是,我想要实现的是仅在记录错误或致命错误时才能够发送电子邮件。 根据我在 web.config 文件中的当前配置,我收到两封电子邮件,一封是关于错误的,另一封是关于其余日志的。 Global.asax.cs:
logger.Info("Info");
logger.Warn("Warning");
logger.Fatal("Fatal");
logger.Error("exception");
web.config:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="bla@bla.com" />
<from value="bla@bla.com" />
<subject value="test logging message" />
<smtpHost value="*******" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger- %message%newline%newline%newline" />
</layout>
</appender>
尝试使用:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
...
<threshold value="WARN"/>
...
</appender>
(或 threshold value="ERROR"
因为你说你想限制错误和致命级别)而不是:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
...
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
...
</appender>
log4net 文档或 this message in the log4net user mailing list 解释了差异。
我找到了解决方案,我应该将此标记添加到 SmtpAppender:
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>