一、在项目中添加对Log4Net的引用
二、在AssemblyInfo.cs增加
[assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]
三、修改Web.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--Log4Net配置-->
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="SmtpAppender" />
<!--所有日志将全部发送邮件,如果在程序中使用 SmtpAppender 将会出现发送2次邮件的情况-->
</root>
<logger name="SmtpAppender">
<level value="ALL"/>
<appender-ref ref="SmtpAppender" />
</logger>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<authentication value="Basic" />
<to value="收件箱" />
<from value="发件箱" />
<username value="发件箱用户名" />
<password value="发件箱密码" />
<subject value="网站内部错误" />
<smtpHost value="发件箱smtp地址" />
<bufferSize value="0"></bufferSize>
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日期:%d|线程ID:%t|优先级别:%p|当前对象:%c|文件名:%F 行号%L|错误信息:%m%n%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="Fatal" />
<param name="LevelMax" value="Fatal" />
</filter>
</appender>
</log4net>
<!--/Log4Net配置-->
四、测试
protected void btn1_Click(object sender, EventArgs e)
{
ILog logger = LogManager.GetLogger(typeof(Global));
logger.Fatal("将错误日志发送到邮箱,测试成功");
}
在Global.asax.cs中
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = HttpContext.Current.Server.GetLastError();
ILog logger = LogManager.GetLogger(typeof(Global));
logger.Fatal(ex);
}