Search code examples
c#log4net-configurationsmtpappender

Customizing the body of the email using Log4net Smtp appender


How do I customize the body of the email using Log4net Smtp appender? I wanted to add custom message to the body.


Solution

  • Given you are using an appender similar this

    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
        <to value="[email protected]" />
        <from value="[email protected]" />
        <subject value="test logging message" />
        <smtpHost value="SMTPServer.domain.com" />
        <bufferSize value="512" />
        <lossy value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%message" />
        </layout>
    </appender>
    

    You should be able to format the message using StringBuilder before logging:

    var sb = new StringBuilder();
    sb.Append("Header");
    sb.Append(Environment.NewLine);
    sb.Append("Message");
    ...
    var msg = sb.ToString();
    
    ILog log = //resolve ILog
    log.Debug(msg);
    

    More config samples here search for SmtpAppender