log4net基础学习

  log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。

    log4net目前下载地址:http://logging.apache.org/log4net/download_log4net.cgi?Preferred=http%3A%2F%2Fmirror.bit.edu.cn%2Fapache%2F

  点击下载压缩包之后将log4net.dll文件拷贝到项目中引用即可。其他具体的操作详见log4net-sdk-2.0.8.chm,具体界面如下:

  程序演示:

  config文件修改

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3   <configSections>
 4     <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
 5   </configSections>
 6   <appSettings>
 7   </appSettings>
 8   <log4net>
 9     <!--定义输出到文件中-->
10     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
11       <!--定义文件存放位置-->
12       <file value="F:\我的博客\9.12\log4net\程序演示\log4net_test\log4net_test\日志文件\Log[%property{LogFileName}].txt" />
13       <appendToFile value="true" />
14       <!--<rollingStyle value="Date" />
15       <datePattern value="yyyyMMdd-HH:mm:ss" />-->
16       
17       <layout type="log4net.Layout.PatternLayout">
18         <!--每条日志末尾的文字说明-->
19         <footer value="by 墨染" />
20         <!--输出格式-->
21         <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
22         <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
23       </layout>
24     </appender>
25     <!--定义输出到控制台命令行中-->
26     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
27       <layout type="log4net.Layout.PatternLayout">
28         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
29       </layout>
30     </appender>
31     <!--定义输出到windows事件中-->
32     <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
33       <layout type="log4net.Layout.PatternLayout">
34         <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
35       </layout>
36     </appender>
37     <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
38     <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
39       <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
40       <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
41       <!--定义各个参数-->
42       <parameter>
43         <parameterName value="@logDate" />
44         <dbType value="String" />
45         <size value="240" />
46         <layout type="log4net.Layout.PatternLayout">
47           <conversionPattern value="%date" />
48         </layout>
49       </parameter>
50       <parameter>
51         <parameterName value="@thread" />
52         <dbType value="String" />
53         <size value="240" />
54         <layout type="log4net.Layout.PatternLayout">
55           <conversionPattern value="%thread" />
56         </layout>
57       </parameter>
58       <parameter>
59         <parameterName value="@logLevel" />
60         <dbType value="String" />
61         <size value="240" />
62         <layout type="log4net.Layout.PatternLayout">
63           <conversionPattern value="%level" />
64         </layout>
65       </parameter>
66       <parameter>
67         <parameterName value="@logger" />
68         <dbType value="String" />
69         <size value="240" />
70         <layout type="log4net.Layout.PatternLayout">
71           <conversionPattern value="%logger" />
72         </layout>
73       </parameter>
74       <parameter>
75         <parameterName value="@message" />
76         <dbType value="String" />
77         <size value="240" />
78         <layout type="log4net.Layout.PatternLayout">
79           <conversionPattern value="%message" />
80         </layout>
81       </parameter>
82     </appender>
83     <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
84     <root>
85       <!--文件形式记录日志-->
86       <appender-ref ref="LogFileAppender" />
87       <!--控制台控制显示日志-->
88       <appender-ref ref="ConsoleAppender" />
89       <!--Windows事件日志-->
90       <appender-ref ref="EventLogAppender" />
91       <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
92       <appender-ref ref="AdoNetAppender_Access" />
93       -->
94     </root>
95 
96   </log4net>
97 </configuration>
View Code

  主要输出代码:

 1 using log4net;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Reflection;
 6 using System.Text;
 7 using System.Threading.Tasks;
 8 
 9 //注意加上下面的语句,指定log4net使用.config文件来读取配置信息
10 [assembly: log4net.Config.XmlConfigurator(Watch = true)]
11 namespace log4net_test
12 {
13     class Program
14     {
15         static void Main(string[] args)
16         {
17             DateTime currentTime = DateTime.Now;
18             log4net.GlobalContext.Properties["LogFileName"] =currentTime.ToString("yyyyMMdd");
19             ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
20             log.Info("程序已经启动");
21             log.Error("程序出现异常错误");
22             log.Debug("debug");
23             log.Warn("warn");
24             Console.ReadKey();
25         }
26     }
27 }
View Code

  输出:

  日志文件:

posted @ 2017-09-12 12:12  墨渊、  阅读(278)  评论(0编辑  收藏  举报