0

This is configuration

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

This is the method I use to send the email

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

I think it is the configuration, maybe something is missing or some wrong data but I don't know what, what did I do wrong? I put two appenders because the info and warning log levels must be written in the file, while the error levels in both the file and the mail

UPDATE

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

Now when log4net is configured this error is returned:

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)
Riccardo Pezzolati
  • 357
  • 1
  • 4
  • 15

1 Answers1

0

Look. I'm just seeing your configuration and did you try to change tag value for another host, like Gmail? I don't have experience with log4net but sometimes when something is wrong to send an email, probably can be the SMTP host, port. Make senses ?

  • I found another post at https://stackoverflow.com/questions/15523613/log4net-smtp-appender-not-sending-emails Maybe is helpful :-) – Edson Martins Dec 28 '20 at 16:56