Skip to content

Instantly share code, notes, and snippets.

@carlhoerberg
Created April 5, 2011 07:12
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 carlhoerberg/903163 to your computer and use it in GitHub Desktop.
Save carlhoerberg/903163 to your computer and use it in GitHub Desktop.
Replace log4net replacement for Elmah
protected void Application_Error(object sender, EventArgs e)
{
var error = Server.GetLastError();
var log = LogManager.GetLogger(GetType());
var msg = string.Format("\r\nPath: {0}\r\nMethod: {4}\r\nUser: {1}\r\nForm: {2}\r\nReferer: {3}",
Request.Url,
User.Identity.Name,
Request.Form,
Request.UrlReferrer,
Request.HttpMethod);
log.Error(msg, error);
}
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
// the rest
}
// We have to override the default HandleErrorAttribute. place class in your default namespace
public class HandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
var log = LogManager.GetLogger("My application");
var msg = string.Format("\r\nPath: {0}\r\nMethod: {4}\r\nUser: {1}\r\nForm: {2}\r\nReferer: {3}",
context.HttpContext.Request.Url,
context.HttpContext.User.Identity.Name,
context.HttpContext.Request.Form,
context.HttpContext.Request.UrlReferrer,
context.HttpContext.Request.HttpMethod);
log.Error(msg, context.Exception);
}
}
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\myapp.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="MailAppender" type="log4net.Appender.SmtpAppender">
<to value="exceptions@mon7.se" />
<from value="no-reply@mon7.se" />
<subject value="EES Exceptions" />
<smtpHost value="smtp.yourserver.com" />
<authentication value="basic"/>
<username value="login"/>
<password value="password"/>
<port value="587"/>
<bufferSize value="512" />
<lossy value="false" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date %-5level %logger - %message%newline%newline%newline" />
</layout>
</appender>
<root>
<level value="WARN"/>
<appender-ref ref="RollingLogFileAppender"/>
<appender-ref ref="MailAppender"/>
</root>
</log4net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment