发生错误时发送邮件
Sending mail when error occurrs
我使用 log4net 记录错误。记录到文件有效,现在我还希望通过邮件发送错误。但我无法让它工作。这是我的配置文件:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="test@gmail.com" />
<from value="test@gmail.com" />
<subject value="Test - Error" />
<smtpHost value="smtp.gmail.com" />
<authentication value="Basic" />
<port value="587" />
<username value="MyUsername" />
<password value="MyPassword" />
<bufferSize value="1" />
<lossy value="true" />
<threshold value="ERROR"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd MMM yyyy HH:mm:ss,fff}] %level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<appender-ref ref="SmtpAppender" />
</root>
我看到有人也在使用 <EnableSsl value="true" />
,但是当我将它复制到 appender 标签中时,它说它是无效元素。顺便说一句,当我通过 C# 代码发送其他电子邮件时,我将 EnableSsl
设置为 true。
调试正在发生的事情的最简单方法是启用 log4net 内部日志记录:
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
这将向控制台和 System.Diagnostics.Trace 系统打印您的 appender 配置的任何潜在问题。我能看到的问题是您指定了 lossy
但没有添加求值器:
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator,log4net">
<threshold value="ERROR" />
</evaluator>
基本上,您需要将当前拥有的 <threshold>
设置放入评估器部分。
您还应该添加 <EnableSsl value="true" />
开关,因为 gmail 需要这样做。
另一件需要验证的事情是 gmail 没有阻止您尝试发送电子邮件的地址。登录您的 gmail 帐户并查看是否有一些电子邮件指示被阻止 activity.
我使用 log4net 记录错误。记录到文件有效,现在我还希望通过邮件发送错误。但我无法让它工作。这是我的配置文件:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="test@gmail.com" />
<from value="test@gmail.com" />
<subject value="Test - Error" />
<smtpHost value="smtp.gmail.com" />
<authentication value="Basic" />
<port value="587" />
<username value="MyUsername" />
<password value="MyPassword" />
<bufferSize value="1" />
<lossy value="true" />
<threshold value="ERROR"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd MMM yyyy HH:mm:ss,fff}] %level %thread %logger - %message%newline" />
</layout>
</appender>
<root>
<appender-ref ref="SmtpAppender" />
</root>
我看到有人也在使用 <EnableSsl value="true" />
,但是当我将它复制到 appender 标签中时,它说它是无效元素。顺便说一句,当我通过 C# 代码发送其他电子邮件时,我将 EnableSsl
设置为 true。
调试正在发生的事情的最简单方法是启用 log4net 内部日志记录:
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
这将向控制台和 System.Diagnostics.Trace 系统打印您的 appender 配置的任何潜在问题。我能看到的问题是您指定了 lossy
但没有添加求值器:
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator,log4net">
<threshold value="ERROR" />
</evaluator>
基本上,您需要将当前拥有的 <threshold>
设置放入评估器部分。
您还应该添加 <EnableSsl value="true" />
开关,因为 gmail 需要这样做。
另一件需要验证的事情是 gmail 没有阻止您尝试发送电子邮件的地址。登录您的 gmail 帐户并查看是否有一些电子邮件指示被阻止 activity.