【发布时间】:2013-03-20 12:30:49
【问题描述】:
我正在尝试实现 log4net 来发送电子邮件。
以下是我的代码,但它不发送电子邮件。
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="...." />
<from value="..." />
<subject value="Logging Message" />
<smtpHost value="smtp.gmail.com" />
<port value="465"/>
<authentication value="Basic" />
<username value="..."/>
<password value="..."/>
<EnableSsl value="true" />
<bufferSize value="1" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
</layout>
</appender>
和
<root>
<level value="WARN" />
<appender-ref ref="SmtpAppender" />
</root>
在 AssemblyInfo.cs 中
[assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]
这就是我创建日志对象的方式
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
此配置适用于文件输出,即 RollingFileAppender,但不适用于 SmtpAppender。
N 我尝试了许多来自互联网的解决方案,但都没有真正的帮助。
请告诉我正确的方向。提前谢谢 :)
【问题讨论】:
-
您的配置文件中的 SMTP 设置是什么样的,您可以显示您需要的配置部分吗
SMTP.Appender -
“不发送电子邮件”真的非常模糊。问题可能出在很多地方。您的第一步是使用您可以控制的 SMTP 主机。这会将问题缩小到它是否使用附加程序与 SMTP 主机是否拒绝消息。 (这是一个非常大的区别。)尝试使用类似 smtp4dev (smtp4dev.codeplex.com) 作为本地 SMTP 主机来测试记录器是否至少在做你认为它在做的事情。
-
据我记忆,Gmail 仅支持通过加密连接的 SMTP。而且我怀疑普通的 stmp appender 可以建立它。
-
我刚刚使用我自己的 gmail 帐户测试了我的答案,它使用 log4net Appender C# .NET 4.0 VS2010 工作,所以不知道为什么我的答案对你没有帮助。我将我的答案标记为删除,祝你好运还需要看看你背后的代码在你如何发送你的凭证方面是什么样的......
-
您的问题也看起来像您没有获得记录器的正确名称,例如
var log = LogManager.GetLogger("SMTPAppender");,那么您也需要这样做才能阅读配置log4net.Config.XmlConfigurator.Configure();
标签: c# log4net smtpappender