Log4Net使用详解.docx

上传人:b****2 文档编号:14431358 上传时间:2023-04-23 格式:DOCX 页数:38 大小:572.85KB
下载 相关 举报
Log4Net使用详解.docx_第1页
第1页 / 共38页
Log4Net使用详解.docx_第2页
第2页 / 共38页
Log4Net使用详解.docx_第3页
第3页 / 共38页
Log4Net使用详解.docx_第4页
第4页 / 共38页
Log4Net使用详解.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

Log4Net使用详解.docx

《Log4Net使用详解.docx》由会员分享,可在线阅读,更多相关《Log4Net使用详解.docx(38页珍藏版)》请在冰豆网上搜索。

Log4Net使用详解.docx

Log4Net使用详解

Log4net使用详解

说明:

本程序演示如何利用log4net记录程序日志信息。

log4net是一个功能著名的开源日志记录组件。

利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite)中。

并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:

FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。

要想获取最新版本的log4net组件库,可以到官方网站http:

//logging.apache.org/log4net/下载。

现在的最新版本是1.2.10。

下面的例子展示了如何利用log4net记录日志 。

首先从官方网站下载最近版本的log4net组件,现在的最新版本是1.2.10。

在程序中我们只需要log4net.dll文件就行了,添加对log4net.dll的引用,就可以在程序中使用了。

接着我们配置相关的配置文件(WinForm对应的是*.exe.config,WebForm对应的是*.config),本实例中是控制台应用程序,配置如下(附各配置的说明):

xml version="1.0" encoding="utf-8" ?

>

  

    

  

  

  

  

    

--定义输出到文件中-->

    

      

--定义文件存放位置-->

      

log4netfile.txt" />

      

      

      

mm:

ss" />

      

        

--每条日志末尾的文字说明-->

        

        

--输出格式-->

        

--样例:

2008-03-26 13:

42:

32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->

        

%date 线程ID:

[%thread] 日志级别:

%-5level 出错类:

%logger property:

[%property{NDC}] - 错误描述:

%message%newline" />

      

    

    

--定义输出到控制台命令行中-->

    

      

        

      

    

    

--定义输出到windows事件中-->

    

      

        

      

    

    

--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->

    

      

log4net.mdb" />

      

      

--定义各个参数-->

      

        

        

        

        

          

        

      

      

        

        

        

        

          

        

      

      

        

        

        

        

          

        

      

      

        

        

        

        

          

        

      

      

        

        

        

        

          

        

      

    

    

--定义日志的输出媒介,下面定义日志以四种方式输出。

也可以下面的按照一种类型或其他类型输出。

-->

    

      

--文件形式记录日志-->

      

      

--控制台控制显示日志-->

      

      

--Windows事件日志-->

      

      

-- 如果不启用相应的日志记录,可以通过这种方式注释掉

      

      -->

    

    

  

程序文件:

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows.Forms;

using System.Reflection;

using log4net;

//注意下面的语句一定要加上,指定log4net使用.config文件来读取配置信息

//如果是WinForm(假定程序为MyDemo.exe,则需要一个MyDemo.exe.config文件)

//如果是WebForm,则从web.config中读取相关信息

[assembly:

 log4net.Config.XmlConfigurator(Watch = true)]

namespace Log4NetDemo

{

    /// 

    /// 说明:

本程序演示如何利用log4net记录程序日志信息。

log4net是一个功能著名的开源日志记录组件。

    /// 利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库中(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)。

    /// 下面的例子展示了如何利用log4net记录日志

    /// 作者:

周公

    /// 时间:

2008-3-26

    /// 首发地址:

    /// 

    public class MainClass

    {

        public static void Main(string[] args)

        {

            //Application.Run(new MainForm());

            //创建日志记录组件实例

            ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

            //记录错误日志

            log.Error("error",new Exception("发生了一个异常"));

            //记录严重错误

            log.Fatal("fatal",new Exception("发生了一个致命错误"));

            //记录一般信息

            log.Info("info");

            //记录调试信息

            log.Debug("debug");

            //记录警告信息

            log.Warn("warn");

            Console.WriteLine("日志记录完毕。

");

            Console.Read();

        }

    }

}

运行结果:

控制台上的输出

日志文件内容

 

首先说明一点的是,log4net解决的问题是提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite)中,一般来说我们只需要提供一个描述性的字符串,然后log4net就会自动提供有关运行时的一些信息。

Log4Net的版本仍是1.2.10(2008年我写博文的时候也是这个版本),有.NET1.0和.NET1.1和.NET2.0版本,如果有正在使用高于.NET2.0开发的也不用担心,可以直接引用这个类库,像在.NET2.0中开发一样,它的网址是:

http:

//logging.apache.org/log4net/

关于在Web中支持的问题

在我们开发项目时都会使用到config文件,可以在config文件中配置log4net。

这一点Web项目和WinForm项目都是一样的。

需要注意的是,因为在Web项目中一般以较低权限的角色来运行Web项目的,所以在使用文件型日志时要注意不要放在本项目根文件夹之外。

在config文件中的配置

要使用log4net,首先要在config文件的节点中增加配置(如果没有这个节点请手动增加),如下:

viewplaincopytoclipboardprint?

1.  

2.      

3.  

除此之外,还要在顶级节点下增加子节点。

节点下就可以增加子节点,每个子节点代表一种记录日志的方式(仅在这里配置了不代表启用了)。

具体说来有如下Appender:

AdoNetAppender:

利用ADO.NET记录到数据库的日志。

AnsiColorTerminalAppender:

在ANSI窗口终端写下高亮度的日志事件。

AspNetTraceAppender:

能用中Trace的方式查看记录的日志。

BufferingForwardingAppender:

在输出到子Appenders之前先缓存日志事件。

ConsoleAppender:

将日志输出到控制台。

EventLogAppender:

将日志写到WindowsEventLog.

FileAppender:

将日志写到文件中。

LocalSyslogAppender:

将日志写到localsyslogservice(仅用于UNIX环境下).

MemoryAppender:

将日志存到内存缓冲区。

NetSendAppender:

将日志输出到WindowsMessengerservice.这些日志信息将在用户终端的对话框中显示。

RemoteSyslogAppender:

通过UDP网络协议将日志写到Remotesyslogservice。

RemotingAppender:

通过.NETRemoting将日志写到远程接收端。

RollingFileAppender:

将日志以回滚文件的形式写到文件中。

SmtpAppender:

将日志写到邮件中。

TraceAppender:

将日志写到.NETtrace系统。

UdpAppender:

将日志connectionlessUDPdatagrams的形式送到远程宿主或以UdpClient的形式广播。

关于使用log4net中可能会使用到的一些参数

%m(message):

输出的日志消息,如ILog.Debug(…)输出的一条消息

%n(newline):

换行

%d(datetime):

输出当前语句运行的时刻

%r(runtime):

输出程序从运行到执行到当前语句时消耗的毫秒数

%t(threadid):

当前语句所在的线程ID

%p(priority):

日志的当前优先级别,即DEBUG、INFO、WARN…等

%c(class):

当前日志对象的名称,例如:

%f(file):

输出语句所在的文件名。

%l(line):

输出语句所在的行号。

%数字:

表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。

下面以一个实际的例子来说明问题,比如在配置中有“%date[%thread](%file:

%line)%-5level%logger[%property{NDC}]-%message%newline”,那么实际的日志中会是如下格式:

“记录时间:

2010-11-1716:

16:

36,561线程ID:

[9]日志级别:

文件:

所在行ERROR出错类:

Log4NetDemo.Programproperty:

[(null)]-错误描述:

error

System.Exception:

在这里发生了一个异常,ErrorNumber:

2036084948”

关于对数据库的支持

前面已经说过,log4net是支持包括MSSQLServer,Access,Oracle9i,Oracle8i,DB2,SQLite在内的数据库的,如果是文件型数据库(如Access或SQLite)的话就需要指定数据库文件的位置(在Web中最好指定在有读写权限的文件夹下,并且实现创建好表),如果是网络数据库就需要指定正确的数据库连接字符串。

比如要记录到Oracle数据库中,在配置文件中可以增加一个节点,配置如下:

1.  

2.        

3.        

4.      

log_date, :

thread, :

log_level, :

logger, :

message)" />  

5.        

6.        

7.        

log_date" />  

8.          

9.          

10.        

11.        

12.        

thread" />  

13.          

14.          

15.          

16.            

17.          

18.        

19.        

20.        

log_level" />  

21.          

22.          

23.          

24.            

25.          

26.        

27.        

28.        

logger" />  

29.          

30.          

31.          

32.            

33.          

34.        

35.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1