Log4net - smtp appender无法正常工作

Ank*_*kit 15 log4net

当发生任何应用程序错误时,我正在使用log4net发送邮件.我已经配置了log4net但邮件没有被重新编写.以下是配置:

    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
        <to value="aagrawal@inco.com"/>
        <from value="aagrawal@inco.com"/>
        <subject value="ERROR | MRM Application"/>
        <smtpHost value="relaymail.sapient.com"/>
        <bufferSize value="512"/>
        <lossy value="true"/>
        <evaluator type="log4net.Core.LevelEvaluator">
            <threshold value="ALL"/>
        </evaluator>
        <layout type="log4net.Layout.PatternLayout,log4net">
            <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline"/>
        </layout>
    </appender>
Run Code Online (Sandbox Code Playgroud)

是否还需要进行其他更改?

Han*_*ard 13

看起来不错.要在控制台中查看一些log4net调试消息,请在app.config中添加以下行

  <appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
  </appSettings>
Run Code Online (Sandbox Code Playgroud)

也许这会给你一个提示.

  • 我发现这篇文章很有帮助,它更详细地描述了如何做到这一点:http://david.gardiner.net.au/2008/11/log4nets-smtpappender-with-multiple.html (2认同)

Mau*_*fer 12

检查是否需要SMTP身份验证.

此外,bufferSize值="512"表示在发送电子邮件之前它将收集512条消息.我很确定你不想那样.

  • 我把它修改为1.仍然没有收到任何邮件.除了web.config之外还有其他任何配置需要完成 (2认同)

M A*_*kin 6

我还发现必须在根元素中引用appender,如下所示:

    <root>
      <level value="INFO"/>
      <appender-ref ref="LogFileAppender"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender-ref ref="SmtpAppender"/>      
    </root>
  </log4net>
Run Code Online (Sandbox Code Playgroud)


Ale*_*lov 5

<lossy value="false" />
Run Code Online (Sandbox Code Playgroud)

它对我有帮助