1

我对 log4net 有以下 SmtpAppender 配置:

<appender name="AlchemySmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="my@mail.com" />
      <from value="validfrom@mail.com" />
      <subject value="Fatal error on Web Portal" />
      <smtpHost value="ValidHost" />
      <username value="myUserName"/>
      <password value="myPassword"/>
      <lossy value="false" />
      <bufferSize value="0"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger - %message%newline%newline%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="AlchemySmtpAppender" />
    </root>

电子邮件从不发送。

我启用了内部调试并检查了跟踪/输出并发现以下内容:

log4net: Loading Appender [SmtpAppender] type: [log4net.Appender.SmtpAppender]
log4net: Setting Property [To] to String value [my@mail.com]
log4net: Setting Property [From] to String value [validfrom@mail.com]
log4net: Setting Property [Subject] to String value [Fatal error on Web Portal]
log4net: Setting Property [SmtpHost] to String value [ValidHost]
log4net: Setting Property [Username] to String value [myUserName]
log4net: Setting Property [Password] to String value [myPassword]
log4net: Setting Property [Lossy] to Boolean value [False]
log4net: Setting Property [BufferSize] to Int32 value [0]
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Setting Property [ConversionPattern] to String value [%newline%date [%thread] %-5level %logger - %message%newline%newline%newline]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [date] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [literal] Option [ [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [thread] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [literal] Option [] ] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [level] Option [] Format [min=5,max=2147483647,leftAlign=True]
log4net: Converter [literal] Option [ ] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [logger] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [literal] Option [ - ] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [message] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Converter [newline] Option [] Format [min=-1,max=2147483647,leftAlign=False]
log4net: Setting Property [Layout] to object [log4net.Layout.PatternLayout]
log4net: reated Appender [SmtpAppender]
log4net: Adding appender named [SmtpAppender] to logger [root].
log4net: Hierarchy Threshold []

我看不到任何错误,也没有电子邮件。电子邮件地址、凭据和主机都是有效的,因为我们也在 web.config 文件的 System.Net 部分中使用它们并且它们运行良好。

任何人都知道我的配置可能做错了什么?或者也许我可以做一些其他形式的故障排除来解决这个问题?
使用 RollingFile、Trace 和 AdoNetAppender 等其他附加程序也可以正常工作。

4

1 回答 1

1

我设法通过安装 smtp4dev 并将 log4net 配置为使用我设置的虚拟主机来解决我的问题。

只是为了确认以防有人需要这样做:

  1. 下载并运行 smtp4dev
  2. 在选项下设置主机(使用一些假名)
  3. 编辑您的主机文件并将假主机名添加到其中
  4. 确保您的 smtpAppender 配置为使用假主机,如下所示:
<appender name="MySmtpAppender" type="log4net.Appender.SmtpAppender">
      <To value="my@mail.com" />
      <From value="no-reply@mail.com" />
      <Subject value="Fatal error on Web Portal" />
      <SmtpHost value="FakeHost" />
      <Port value="25" />
      <Username value="myUsername"/>
      <Password value="myPassword"/>
      <Layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %level %logger [%property{NDC}] - %message%newline%newline%newline" />
      </Layout>
</appender>

希望有帮助。

于 2013-09-05T08:51:01.527 回答