log4net-configuration - Log4Net 不发送电子邮件
问题描述
这是配置
<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 ==> %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>
这是我用来发送电子邮件的方法
private void SendErrorLogByMail(string error)
{
mailLogger.Error(error);
}
我认为是配置问题,可能缺少某些内容或一些错误的数据,但我不知道是什么,我做错了什么?我放了两个附加程序,因为信息和警告日志级别必须写入文件中,而文件和邮件中的错误级别
更新
<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 ==> %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>
现在,当配置 log4net 时,会返回此错误:
log4net: ERROR [SmtpAppender] ErrorCode: GenericFailure. Error occurred while sending e-mail notification.
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client has not been authenticated. Server response: 5.7.0 Must issue a STARTTLS command first. v18sm36645763edx.30 - gsmtp
in System.Net.Mail.MailCommand.CheckResponse (SmtpStatusCode statusCode, String response)
in System.Net.Mail.MailCommand.Send (SmtpConnection conn, Byte [] command, String from)
in System.Net.Mail.SmtpTransport.SendMail (MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException & exception)
in System.Net.Mail.SmtpClient.Send (MailMessage message)
in log4net.Appender.SmtpAppender.SendEmail (String messageBody)
in log4net.Appender.SmtpAppender.SendBuffer (LoggingEvent [] events)
解决方案
看。我刚刚看到您的配置,您是否尝试更改其他主机的标记值,例如 Gmail?我没有使用 log4net 的经验,但有时当发送电子邮件出现问题时,可能是 SMTP 主机、端口。有意义吗?
推荐阅读
- android - Google Sign-in Using Firebase and Qt
- mysql - 如何在纯 MySQL 中生成类别的面包屑?
- winapi - 在 win32 代码中输入“零”时提示自动消息
- computer-vision - 基于 GAN 的图像到分割图与 SOTA 语义分割方法有何不同?
- swift - 如何在 Safari 浏览器中快速打开 .pdf URL
- gdb - 将 GDB 附加到在每个 smp 上运行不同内核的 Qemu
- go - 将日志转换为 JSON 格式
- java - 获得一个占 Android 屏幕大小 25% 的点
- android - 程序类型已存在:com.google.android.gms.common.zza
- python-3.x - 如何将 python 列表插入特定的 Oracle 数据库列?