我正在尝试实现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>
Run Code Online (Sandbox Code Playgroud)
和
<root>
<level value="WARN" />
<appender-ref ref="SmtpAppender" />
</root>
Run Code Online (Sandbox Code Playgroud)
在AssemblyInfo.cs中
[assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]
Run Code Online (Sandbox Code Playgroud)
这就是我创建日志对象的方式
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)
此配置适用于文件输出,即RollingFileAppender,但不适用于SmtpAppender.
我已经从互联网上尝试了很多解决方案,但并没有真正的帮助.
请告诉我正确的方向.谢谢你提前:)
我为.NET Core 2.0创建了一个控制台应用程序,并安装了log4net 2.0.8 nuget
我想使用SmtpAppender,但库中不存在
这是我的log4net配置
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="test@test.com" />
<from value="test@test.com" />
<subject type="log4net.Util.PatternString" value="Message logged" />
<smtpHost value="localhost" />
<authentication value="None" />
<port value="25" />
<bufferSize value="1" />
<lossy value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate [%level] - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="SmtpAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
这是Program.cs
namespace Log4NetTest
{
public class Program
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{ …Run Code Online (Sandbox Code Playgroud)