Log4Net将错误日志发送到邮箱

来源:互联网 发布:网站建设以及seo 编辑:程序博客网 时间:2024/05/17 14:19

一、在项目中添加对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);}