public void DoSomethingImportant()
{
try
{
InternalDoSomethingImportant();
}
catch (Exception e)
{
_logger.Error("A serious error occured.", e);
}
}
Now, instead of passing in an IEmailSender here and calling SendMessage(), try setting this up in your Log4Net configuration:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<threshold value="WARN"/>
<to value="to@emailaddress.com" />
<from value="from@emailaddress.com" />
<subject value="SmtpAppender" />
<smtpHost value="SmtpHost" />
<bufferSize value="512" />
<lossy value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>
<root>
<level value="ERROR"/>
</root>
</log4net>
Of course, you probably will have more configuration than this, but this is the bare minimum if you want to be emailed of errors. Don't forget about the FATAL log level as well. You could very easily change the level of the message that you wanted to be notified of via email.
I've set the appender threshold of the SmtpAppender here to WARN. You can make sure that you don't get any emails of lower priority using this setting in more advanced Log4Net configurations.
No comments:
Post a Comment