Skip to content

Instantly share code, notes, and snippets.

@Rdot
Last active November 5, 2019 09:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rdot/7912122 to your computer and use it in GitHub Desktop.
Save Rdot/7912122 to your computer and use it in GitHub Desktop.
public class CustomAppender : log4net.Appender.SMTPAppender
{
protected override void SendBuffer(log4net.helpers.CyclicBuffer buffer)
{
base.SendBuffer(buffer);
}
protected override void SendBuffer(log4net.spi.LoggingEvent[] events)
{
StringBuilder stringBuilder = new StringBuilder();
string header = this.Layout.Header;
if (header != null)
{
stringBuilder.Append(header);
}
string hostName = SystemInfo.HostName;
for (int i = 0; i < (int)events.Length; i++)
{
if (events[i].Properties["log4net:HostName"] == null)
{
events[i].Properties["log4net:HostName"] = hostName;
}
stringBuilder.Append(base.RenderLoggingEvent(events[i]));
}
header = this.Layout.Footer;
if (header != null)
{
stringBuilder.Append(header);
}
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(this.From, this.To, this.Subject, stringBuilder.ToString());
using (System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("yourhost",someport)
{
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Send(message);
}
}
}
// Getting a reference to the logger in code.
static ILog emailLog = LogManager.GetLogger("YourLogger");
//Using the logger
emailLog.Error("message",exc);
<appender name="SmtpAppender" type="Your Class,Your Namespace">
<threshold value="WARN"/>
<to value="list@yourcompany.com" />
<from value="website@yourcompany.com" />
<subject value="website Errors" />
<smtpHost value="your host" />
<bufferSize value="1" />
<lossy value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
</layout>
</appender>
<logger name="YourLogger">
<level value="INFO"/>
<encoding value="utf-8"/>
<appender-ref ref="SmtpAppender"/>
</logger>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment