log4net smtp appender不发送电子邮件

时间:2013-03-20 12:30:49

标签: c# log4net smtpappender

我正在尝试实施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。

我已尝试过很多来自互联网的解决方案,但并没有真正帮助。

请告诉我正确的方向。提前谢谢:)

3 个答案:

答案 0 :(得分:7)

我正在使用非常类似的来自Gmail的SMTP邮件,但在我的情况下,我使用不同的端口:

<port value="587"/>

所有其他设置都是相同的,所以试一试,看看它是否适合您。这是Gmail用于TLS的端口,referenced here

答案 1 :(得分:0)

请参阅我的工作示例。如果您使用GMail进行双因素身份验证,请不要忘记生成密码并在此处使用:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="****" />
  <from value="****" />
  <subject value="Crash log" />
  <smtpHost value="smtp.gmail.com" />
  <authentication value="Basic" />
  <port value="587" />
  <username value="****" />
  <password value="****" />
  <bufferSize value="10" />
  <EnableSsl value="true"/>
  <lossy value="true" />
  <threshold value="DEBUG" />
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="WARN"/>
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date{dd/MM/yyyy hh:mm:ss.fff}&#9;%-5level&#9;%-15logger&#9;%message%newline" />
  </layout>
</appender>

希望它有所帮助。

答案 2 :(得分:0)

对于遇到SmtpAppender问题的人,我建议将以下内容放入appSettings节点。

|ColA|ColB|
|A   |1   |
|B   |2   |
|C   |3   |

然后输出如下所示的诊断信息,指向正确的方向

<appSettings>
  <add key="log4net.Internal.Debug" value="true"/>
</appSettings>
相关问题