Log4Net将错误日志发送到邮箱

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值