引入 Log4net 包
编写 LogHelper 类
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 [assembly: log4net.Config.XmlConfigurator(Watch = true)]//一定要写 7 namespace TestLog4Net 8 { 9 public class LogHelper 10 { 11 /// <summary> 12 /// 输出日志到Log4Net 13 /// </summary> 14 /// <param name="t"></param> 15 /// <param name="ex"></param> 16 #region static void WriteLog(Type t, Exception ex) 17 18 public static void WriteLog(Type t, Exception ex) 19 { 20 log4net.ILog log = log4net.LogManager.GetLogger(t); 21 log.Error("Error", ex); 22 } 23 24 #endregion 25 26 /// <summary> 27 /// 输出日志到Log4Net 28 /// </summary> 29 /// <param name="t"></param> 30 /// <param name="msg"></param> 31 #region static void WriteLog(Type t, string msg) 32 33 public static void WriteLog(Type t, string msg) 34 { 35 log4net.ILog log = log4net.LogManager.GetLogger(t); 36 log.Error(msg); 37 } 38 39 #endregion 40 41
#endregion #region static void WriteLog(string t, Exception ex) public static void WriteLog(string t, Exception ex) { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error(ex); } #endregion
42 } 43 }
在启动项目的配置文件里添加配置
1 <?xml version="1.0"?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 5 </configSections> 6 <log4net> 7 <!--定义输出到文件中--> 8 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 9 <!--定义文件存放位置--> 10 <file value="log\"/> 11 <appendToFile value="true"/> 12 <rollingStyle value="Date"/> 13 <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/> 14 <staticLogFileName value="false"/> 15 <param name="MaxSizeRollBackups" value="100"/> 16 <layout type="log4net.Layout.PatternLayout"> 17 <!--每条日志末尾的文字说明--> 18 <!--输出格式--> 19 <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> 20 <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/> 21 </layout> 22 </appender> 23 <root> 24 <level value="ERROR"/> 25 <!--文件形式记录日志--> 26 <appender-ref ref="RollingLogFileAppender"/> 27 </root> 28 </log4net> 29 </configuration>
引用时直接在事件处填写
LogHelper.WriteLog(typeof(FormMain), "测试Log4Net日志是否写入");
即可
全局错误日志记录
将整个程序域中的错误记录下来
在Global 中添加
protected void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception objExp = HttpContext.Current.Server.GetLastError(); Log4netRecord.WriteLog("<br/><strong>客户机IP</strong>:" + Request.UserHostAddress + "<br /><strong>错误地址</strong>:" + Request.Url, objExp); }
学习于 http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html