微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Log4Net 不发送电子邮件

如何解决Log4Net 不发送电子邮件

这是配置

$categories = get_the_category();
    foreach($categories as $category) {
    echo '<a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>';
}

这是我用来发送电子邮件方法

<log4net debug="true">
    <appender name="RFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <File value="logs/file.txt" />
      <AppendToFile value="true" />
      <DatePattern value="_yyyyMMdd" />
      <RollingStyle value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %date ==&gt; %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="RFileAppender" />
    </root>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="mail" />
      <from value="mail" />
      <subject value="Service Error Log" />
      <smtpHost value="SMTPServer.domain.com" />
      <bufferSize value="512" />
      <lossy value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="ERROR"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
      </layout>
    </appender>
    <root>
      <level value="Error" />
      <appender-ref ref="SmtpAppender" />
    </root>
  </log4net>

我认为是配置问题,可能缺少某些内容或某些错误的数据,但我不知道是什么,我做错了什么?我放了两个appender,因为info和warning日志级别必须写在文件里,而error级别写在文件邮件

更新

private void SendErrorLogByMail(string error)
        {
            mailLogger.Error(error);
        }

现在配置 log4net 时返回此错误

<log4net debug="true">
    <appender name="RFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <File value="log.txt"/>
      <AppendToFile value="true"/>
      <DatePattern value="_yyyyMMdd"/>
      <RollingStyle value="Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level %date ==&gt; %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="RFileAppender"/>
    </root>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="from" />
      <from value="to" />
      <subject value="Error Log" />
      <bufferSize value="512" />
      <smtpHost value="smtp.gmail.com" />
      <port value="587" />
      <authentication value="Basic" />
      <username value="***" />
      <password value="***" />
      <lossy value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="ERROR"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
      </layout>
    </appender>
    <root>
      <level value="Error" />
      <appender-ref ref="SmtpAppender" />
    </root>
  </log4net>

解决方法

看。我只是看到您的配置,您是否尝试更改其他主机(例如 Gmail)的标签值? 我没有使用 log4net 的经验,但有时当发送电子邮件出现问题时,可能是 SMTP 主机、端口。 有道理吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。