Log4Net的SmtpAppender在.netCore中无法工作

5
我将尝试将日志消息发送到我的Gmail帐户,但一直无法成功。我尝试更改端口和阈值值,但都不起作用。当我尝试将日志写入文件时,一切正常,因此我认为问题在于log4net.config文件。
我的log4net配置文件包含:
    <log4net>
     <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="mymail@gmail.com" />
      <from value="mysendermail@gmail.com" />
      <subject value="Crash log" />
      <smtpHost value="smtp.gmail.com" />
      <authentication value="Basic" />
      <port value="465" />
      <username value="myusername" />
      <password value="mypass" />
      <bufferSize value="1" />
      <EnableSsl value="true"/>
      <lossy value="true" />
     <evaluator type="log4net.Core.LevelEvaluator">
       <threshold value="DEBUG"/>
     </evaluator>
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
     </layout>
   </appender>
   <root>
     <level value="DEBUG"/>
     <appender-ref ref="SmtpAppender"/>
   </root>
   </log4net>

在我的Startup.cs文件中,我有以下内容:
var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

我的示例代码如下:

public class HomeController : Controller
    {
        private static readonly ILog log = LogManager.GetLogger(typeof(HomeController));

        public HomeController()
        {

        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult About()
        {

            ViewData["Message"] = "Your application description page.";
            ViewData["Title"] = "title";
            log.Warn("test test", new NullReferenceException("missing"));
            log.Debug("test test", new NullReferenceException("missing"));
            log.Error("test test", new NullReferenceException("missing"));
            log.Fatal("test test", new NullReferenceException("missing"));
            return View();
        }
    }

我做错了什么吗?我尝试了所有方法。


可能是重复问题 https://dev59.com/oWUp5IYBdhLWcg3wGEgR - sgmoore
1
我也遇到了同样的问题。经过检查,我发现 .NET Core 的 log4net 库没有 log4net.Appender.SmtpAppender 类。 - MARKAND Bhatt
1
请查看此答案,了解如何在 .NET Core 中创建自定义 SmtpAppender:[https://dev59.com/7abja4cB1Zd3GeqPbiGm#56813526] - Hussain Hassam
2个回答

4

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接