log4net使用记录
1、在程序中引用log4net.dll
2、添加-新建配置文件Log4Net.config,并在文件属性中“复制到输出目录”选中“始终复制”,文件内容如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--Log日记配置--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <root></root> <!--程序中只实例化一个logger,名字为LogHelper--> <logger name ="LogHelper"> <!--输出所有信息,这里只使用了Info和Error--> <level value="ALL"/> <!--两个介质名称,对应错误和信息--> <appender-ref ref="ErrorRollingFileAppender" /> <appender-ref ref="InfoRollingFileAppender" /> </logger> <!--Info介质设置--> <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置,Info和Error保存在不同的文件夹,方便理解--> <file value="Log\\Info\\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例: 记录时间:2016-10-11 14:03:00,540 线程ID:[1] 日志级别: ERROR 错误内容 --> <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n%m%n"/> </layout> <!--输出的等级 INFO--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="INFO" /> </filter> </appender> <!--Error介质设置--> <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="Log\\Error\\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--输出格式--> <!--样例: 记录时间:2016-10-11 13:59:00,560 线程ID:[1] 日志级别: INFO 信息内容 --> <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n%m%n"/> </layout> <!--设置输出的等级 ERROR--> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> </log4net> </configuration>
3、在AssemblyInfo.cs中添加代码,用于调用Log4Net.config:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
4、实现LogHelper,代码如下:
public class LogHelper { private static log4net.ILog log = log4net.LogManager.GetLogger("LogHelper"); /// <summary> /// 整理异常信息 /// </summary> /// <param name="error"></param> /// <returns></returns> private static string Msg(Exception error) { string str = ""; if (error != null) { str = string.Format("异常类型:{0}\r\n异常消息:{1}\r\n异常信息:{2}\r\n", error.GetType().Name, error.Message, error.StackTrace); } return str; } /// <summary> /// 输出异常信息 /// </summary> /// <param name="t"></param> /// <param name="ex"></param> public static void LogError(Exception ex) { log.Error(Msg(ex)); } /// <summary> /// 输出日记信息 /// </summary> /// <param name="str"></param> public static void LogInfo(string str) { log.Info(str); } }
5、至此,可以在代码中方便地使用Log4Net记录信息
try { throw new Exception("这是一个新异常"); } catch(Exception ex) { LogHelper.LogError(ex); } finally { LogHelper.LogInfo("这是Info"); }