log4net 使用

记录日志是软件开发一个比较重要的模块,最近学习了lognet 记录项目日志的方法,主要用于txt文档记录。

1.下载log4net.dll,引用到项目中

2.新建配置文件log.config

 1 <?xml version="1.0"?>
 2 <configuration>
 3   <configSections>
 4     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"></section>
 5   </configSections>
 6   <log4net>
 7     <!--日志记录目标:定义输出到文件中-->
 8     <!--RollingFileAppender文件大小到达指定尺寸的时候产生一个新的文件-->
 9     <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
10       <!--定义文件存放位置-->
11       <file value="log\" />
12       <!--当文件存在时,是否在原文件上追加-->
13       <appendToFile value="true"/>
14       <!--创建新文件的方式Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite-->
15       <rollingStyle value="Date"/>
16       <!--当RollingStyle为Composite或Date,这里设置文件名格式-->
17       <datePattern value="yyyy\yyyyMMdd.txt"/>
18       <!--备份日志数目-->
19       <param name="MaxSizeRollBackups" value="100"/>
20       <!--为true时,需要在file里指定文件名,所有日志都记录在这个文件里-->
21       <staticLogFileName value="false"/>
22       <!--PatternLayout可以灵活地指定布局模式-->
23       <layout type="log4net.Layout.PatternLayout">
24         <!--每条日志末尾的文字说明-->
25         <!--输出格式-->
26         <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
27         <conversionPattern value="%newline %n记录时间: %date %n线程ID:[%thread] %n日志级别: %-5level 
28                            %n出错类:%logger property:[%property{NDC}] - %n错误描述:%message%newline %n"/>
29       </layout>
30     </appender>
31     <!--日志记录对象,指定logger的设置-->
32     <logger name="mylog">
33       <!--日志记录器可以有多个,如控制台,文件,数据库-->
34       <level value="ALL"/>
35       <!--文件形式记录日志-->
36       <appender-ref ref="RollingLogFileAppender"/>
37     </logger>
38     <!-- 根logger的设置-->
39     <!--<root>
40       <priority value ="debug"/>
41       <appender-ref ref="myConsole"/>
42       <appender-ref ref="myFile"/>
43     </root>-->
44   </log4net>
45   <system.web>
46     <compilation debug="true" targetFramework="4.0" />
47   </system.web>
48 </configuration>
log.config

这是参考了好几篇文章,综合了一下,注释非常详细~~~

3.编写日志记录的公用方法LogHelper.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)]
 7 namespace test.WEB.Common
 8 {
 9     public class LogHelper
10     {
11         /// <summary>
12         /// 构造器
13         /// </summary>
14         static LogHelper()
15         {
16             Init();
17         }
18         //获取日志记录器
19         private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("mylog");
20         
21         /// <summary>
22         /// 读取配置文件-初始化日志系统,在系统运行开始初始化   
23         /// </summary>
24         private static void Init()
25         {
26             log4net.Config.XmlConfigurator.Configure();
27         }
28         #region Debug、Info、Error
29         /// <summary>
30         /// 输出调试到Log4Net
31         /// </summary>
32         /// <param name="t"></param>
33         /// <param name="msg"></param>
34         public static void WriteDebug(object msg, Exception ex)
35         {
36             if (logger.IsDebugEnabled)
37                 logger.Debug(msg, ex);
38         }
39         /// <summary>
40         /// 输出信息到Log4Net
41         /// </summary>
42         /// <param name="t"></param>
43         /// <param name="msg"></param>
44         public static void WriteInfo(object msg)
45         {
46             if (logger.IsInfoEnabled)
47                 logger.Info(msg);
48         }
49         /// <summary>
50         /// 输出错误到Log4Net
51         /// </summary>
52         /// <param name="t"></param>
53         /// <param name="ex"></param>
54         public static void WriteError(object msg, Exception ex)
55         {
56             if (logger.IsErrorEnabled)
57                 logger.Error(msg, ex);
58         }
59         #endregion
60     }
61 }
LogHelper.cs

日志记录级别主要有6种,我用了基本的三种 Debug、Info、Error,主要用于调试和记录错误bug

4.实际调用日志记录方法,简单举例如下:

string input = TextBox1.Text.Trim();
//字符串转换为int, //null, 格式不正确,溢出时报异常;
try
{
//格式不正确,溢出时报异常;
Convert.ToInt32(input);
Common.LogHelper.WriteInfo("输入:" + input);
}
catch (Exception ex)
{

Common.LogHelper.WriteError("输入:" + input, ex);
}

原文地址:https://www.cnblogs.com/anngeiBKY/p/4710253.html