5

I'm trying to send log messages to my gmail account but it keeps not working. I've tried changing ports and changing threshold value but it's not working. When I try writing logs in file everything is ok, so I think the problem is in log4net.config file.

My log4net configuration file contains:

    <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>

In my Startup.cs file I have:

var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

And my example code is:

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();
        }
    }

Am I making something wrong. I tried everything

Grizabela
  • 165
  • 1
  • 11
  • Possible duplicate https://stackoverflow.com/questions/15523613/log4net-smtp-appender-not-sending-emails – sgmoore Apr 20 '17 at 13:28
  • 1
    I also had same problem. When I inspected I found that log4net lib for .net core doesn't have log4net.Appender.SmtpAppender class. – MARKAND Bhatt May 11 '17 at 04:23
  • 1
    [Check out this answer to see how to create your own custom SmtpAppender in .NET Core](https://stackoverflow.com/a/56813526/9610015) – Hussain Hassam Jun 28 '19 at 22:39

2 Answers2

4

log4net's SmtpAppender is not supported in .net core yet.

Supported frameworks: https://logging.apache.org/log4net/release/framework-support.html

Jay Shah
  • 3,553
  • 1
  • 27
  • 26
0

Have you tested the following port:

Gmail SMTP port (TLS): 587

Gmail SMTP port (SSL): 465 <- your current setting

what-are-the-gmail-smtp-settings

Peter
  • 27,590
  • 8
  • 64
  • 84