预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

HYPERLINK\l"_Log4net_使用说明"Log4net使用说明 HYPERLINK\l"_log4net帮助文档"log4net帮助文档 HYPERLINK\l"_log4net_实例"log4net实例 Log4net使用说明 在实际项目中我们经常会用日志来跟踪调试,尤其在系统部署后,日志对于系统诊断和修复配置的作用更加突出。Log4net是用于.NET开发环境的日志记录包。可以从HYPERLINK"http://logging.apache.org/log4net/"http://logging.apache.org/log4net/下载log4net的程序、源代码以及SDK等。 Log4Net结构:log4net有四种主要的组件,分别是Logger(记录器),Repository(库),Appender(附着器)以及Layout(布局). Logger组件Logger是应用程序需要交互的主要组件,它用来产生日志消息。产生的日志消息并不直接显示,还要预先经过Layout的格式化处理后才会输出。Logger提供了多种方式来记录一个日志消息,你可以在你的应用程序里创建多个Logger,每个实例化的Logger对象都被log4net框架作为命名实体(namedentity)来维护。这 意味着为了重用Logger对象,你不必将它在不同的类或对象间传递,只需要用它的名字为参数调用就可以了。log4net框架使用继承体系,继承体系类似于.NET中的名字空间。也就 是说,如果有两个logger,分别被定义为a.b.c和a.b,那么我们说a.b是a.b.c的祖先。每一个logger都继承了祖先的属性。ILog接口Log4net框架定义了一个ILog接口,所有的logger类都必须实现这个接口。如果你想实现一个自定义的logger,你必须首先实现这个接口。ILog接口的定义主要部分如下:publicinterfaceILog{voidDebug(objectmessage);voidInfo(objectmessage);voidWarn(objectmessage);voidError(objectmessage);voidFatal(objectmessage);//以上的每一个方法都有一个重载的方法,用来支持异常处理。//每一个重载方法都如下所示,有一个异常类型的附加参数。voidDebug(objectmessage,Exceptionex);...//Boolean属性用来检查Logger的日志级别boolIsDebugEnabled{get;}boolIsInfoEnabled{get;}boolIsWarnEnabled{get;}boolIsErrorEnabled{get;}boolIsFatalEnabled{get;}…}Log4net框架还定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框 架里不存在该Logger对象,它也会为我们创建一个Logger对象。代码如下所示:log4net.ILoglog=log4net.LogManager.GetLogger("logger-name");通常来说,我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname) 方法来获得,或者可以用如下的反射方法来获得:System.Reflection.MethodBase.GetCurrentMethod().DeclaringType尽管符号长了一些,但是后者可以用于一些场合,比如获取调用方法的类(class)的类型(type)。 日志的级别正如你在ILog的接口中看到的一样,有五种不同的方法可以跟踪一个应用程序。事实上,这五种方法是运作在Logger对象设置的不同日志优先级别上。这几种不同的级别是作为常量定义在log4net.spi.Level类中。你可以在程序中使用任何一种方法。但是在最后的发布中你也许不想让所有的代码来浪费你的CPU周期,因此,框架提供了7种级别和相应的 Boolean属性来控制日志记录的类型。Level有以下几种取值级别 FATALvoidFatal(...);boolIsFatalEnabled;ERRORvoidError(...);boolIsErrorEnabled;WARNvoidWarn(...);boolIsWarnEnabled;INFOvoidInfo(...);boolIsInfoEnabled;