1.配置信息
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
或者
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]
2.配置Log4Net.config
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> 5 </configSections> 6 <!--log4net配置文件--> 7 <log4net> 8 <root> 9 <level value="ALL"/> 10 <appender-ref ref="InfoAppender"/> 11 <appender-ref ref="ErrorAppender"/> 12 <!--<appender-ref ref="ConsoleAppender"/>--> 13 </root> 14 <!--运行状态信息--> 15 <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> 16 <!--日志路径--> 17 <File value="log/log_info.txt"/> 18 <!--是否是向文件中追加日志--> 19 <AppendToFile value="true"/> 20 <!--创建新文件的方式--> 21 <RollingStyle value="Size"/> 22 <!--log文件大小--> 23 <MaximumFileSize value="5M"/> 24 <!--备份日志数目--> 25 <MaxSizeRollBackups value="30"/> 26 <!--日志文件名是否是固定不变的--> 27 <StaticLogFileName value="true"/> 28 <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" /> 29 <!--输出格式--> 30 <layout type="log4net.Layout.PatternLayout"> 31 <!--日期 [级别]--> 32 <conversionPattern value="%d [%-5p] [%t%] -%m%n"/> 33 </layout> 34 <!--控制器,只记录级别在INFO-INFO之间的信息--> 35 <filter type="log4net.Filter.LevelRangeFilter"> 36 <levelMin value="INFO" /> 37 <levelMax value="INFO" /> 38 </filter> 39 </appender> 40 <!--运行错误信息--> 41 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> 42 <!--日志路径--> 43 <File value="log/log_error.txt"/> 44 <!--是否是向文件中追加日志--> 45 <AppendToFile value="true"/> 46 <!--创建新文件的方式--> 47 <RollingStyle value="Size"/> 48 <!--log文件大小--> 49 <MaximumFileSize value="5M"/> 50 <!--备份日志数目--> 51 <MaxSizeRollBackups value="30"/> 52 <!--日志文件名是否是固定不变的--> 53 <StaticLogFileName value="true"/> 54 <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" /> 55 <!--输出格式--> 56 <layout type="log4net.Layout.PatternLayout"> 57 <!--输出格式--> 58 <conversionPattern value="%d [%-5p] [%t%] -%m%n"/> 59 </layout> 60 <!--控制器,只记录级别在WARN-FATAL之间的信息--> 61 <filter type="log4net.Filter.LevelRangeFilter"> 62 <levelMin value="WARN" /> 63 <levelMax value="FATAL" /> 64 </filter> 65 </appender> 66 </log4net> 67 </configuration>
3. LogHelper.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace WHC.Framework.Starter 7 { 8 public class LogHelper 9 { 10 private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 11 12 /// <summary> 13 /// 程序运行的过程中的,一般信息可以调用此方法记录日记 14 /// </summary> 15 /// <param name="info"></param> 16 public static void Info(string info) 17 { 18 if (log.IsInfoEnabled) 19 log.Info(info); 20 } 21 22 /// <summary> 23 /// 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 24 /// </summary> 25 /// <param name="info"></param> 26 public static void Error(string info) 27 { 28 if (log.IsErrorEnabled) 29 log.Error(info); 30 } 31 32 /// <summary> 33 /// 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 34 /// </summary> 35 /// <param name="info"></param> 36 /// <param name="ex"></param> 37 public static void Error(string info, Exception ex) 38 { 39 if (log.IsErrorEnabled) 40 log.Error(info, ex); 41 } 42 43 /// <summary> 44 /// 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 45 /// </summary> 46 /// <param name="ex"></param> 47 public static void Error(Exception ex) 48 { 49 if (log.IsErrorEnabled) 50 log.Error(ex); 51 } 52 53 //private static string SubMsg(string msg) 54 //{ 55 // if (msg.Length > 100) 56 // msg = msg.Substring(0, 100); 57 58 // return msg; 59 //} 60 } 61 }