您好,欢迎访问三七文档
Log4net的主要组成部分一个简单的使用实例配置文件详解如何记录日志探讨Log4net概述一个简单的使用实例配置文件详解如何记录日志探讨Log4net概述Log4net的主要组成部分配置文件详解如何记录日志探讨Log4net概述Log4net的主要组成部分一个简单的使用实例如何记录日志探讨Log4net概述Log4net的主要组成部分一个简单的使用实例配置文件详解探讨Log4net概述Log4net的主要组成部分一个简单的使用实例配置文件详解如何记录日志Log4net的主要组成部分一个简单的使用实例配置文件详解如何记录日志探讨log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。要想获取最新版本的log4net组件库,可以到官方网站下载Log4net概述一个简单的使用实例配置文件详解如何记录日志探讨Appenders用来定义日志的输出方式,即日志要写到那种介质上去。较常用的Log4net输出方式已经实现好了,直接在配置文件中调用即可;当然也可以自己写一个,需要从log4net.Appender.AppenderSkeleton类继承。它还可以通过配置Filters和Layout来实现日志的过滤和输出格式。已经实现的输出方式有:AdoNetAppender将日志记录到数据库中。可以采用SQL和存储过程两种方式。AnsiColorTerminalAppender将日志高亮输出到ANSI终端。AspNetTraceAppender能用asp.net中Trace的方式查看记录的日志。BufferingForwardingAppender在输出到子Appenders之前先缓存日志事件。ConsoleAppender将日志输出到应用程序控制台。EventLogAppender将日志写到WindowsEventLog。FileAppender将日志输出到文件。ForwardingAppender发送日志事件到子Appenders。LocalSyslogAppender将日志写到localsyslogservice(仅用于UNIX环境下)。MemoryAppender将日志存到内存缓冲区。NetSendAppender将日志输出到WindowsMessengerservice.这些日志信息将在用户终端的对话框中显示。OutputDebugStringAppender将日志输出到Debuger,如果程序没有Debuger,就输出到系统Debuger。如果系统Debuger也不可用,将忽略消息。RemoteSyslogAppender通过UDP网络协议将日志写到Remotesyslogservice。RemotingAppender通过.NETRemoting将日志写到远程接收端。RollingFileAppender将日志以回滚文件的形式写到文件中。SmtpAppender将日志写到邮件中。SmtpPickupDirAppender将消息以文件的方式放入一个目录中,像IISSMTPagent这样的SMTP代理就可以阅读或发送它们。TelnetAppender客户端通过Telnet来接受日志事件。TraceAppender将日志写到.NETtrace系统。UdpAppender将日志以无连接UDP数据报的形式送到远程宿主或用UdpClient的形式广播。Filters:使用过滤器可以过滤掉Appender输出的内容。过滤器通常有以下几种:DenyAllFilter阻止所有的日志事件被记录LevelMatchFilter只有指定等级的日志事件才被记录LevelRangeFilter日志等级在指定范围内的事件才被记录LoggerMatchFilter与Logger名称匹配,才记录PropertyFilter消息匹配指定的属性值时才被记录StringMathFilter消息匹配指定的字符串才被记录Layout用于控制Appender的输出格式,可以是线性的也可以是XML。一个Appender只能有一个Layout。最常用的Layout应该是经典格式的PatternLayout,其次是SimpleLayout,RawTimeStampLayout和ExceptionLayout。然后还有IRawLayout,XMLLayout等几个,使用较少。Layout可以自己实现,需要从log4net.Layout.LayoutSkeleton类继承SimpleLayout简单输出格式,只输出日志级别与消息内容。RawTimeStampLayout用来格式化时间,在向数据库输出时会用到。样式如“yyyy-MM-ddHH:mm:ss“ExceptionLayout需要给Logger的方法传入Exception对象作为参数才起作用,否则就什么也不输出。输出的时候会包含Message和Trace。PatterLayout,能输出的信息很多,详细参见PatterLayout格式化字符表.docxLogger是直接和应用程序交互的组件。Logger只是产生日志,然后由它引用的Appender记录到指定的媒介,并由Layout控制输出格式。Logger提供了多种方式来记录一个日志消息,也可以有多个Logger同时存在。每个实例化的Logger对象对被log4net作为命名实体(NamedEntity)来维护。log4net使用继承体系,也就是说假如存在两个Logger,名字分别为a.b.c和a.b。那么a.b就是a.b.c的祖先。每个Logger都继承了它祖先的属性。所有的Logger都从Root继承,Root本身也是一个Logger。日志的等级,它们由高到底分别为:OFFFATALERRORWARNINFODEBUGALL高于等级设定值方法(如何设置参见“配置文件详解”)都能写入日志,Off所有的写入方法都不写到日志里,ALL则相反。例如当我们设成Info时,logger.Debug就会被忽略而不写入文件,但是FATAL,ERROR,WARN,INFO会被写入,因为他们等级高于INFO。在具体写日志时,一般可以这样理解日志等级:FATAL(致命错误):记录系统中出现的能使用系统完全失去功能,服务停止,系统崩溃等使系统无法继续运行下去的错误。例如,数据库无法连接,系统出现死循环。ERROR(一般错误):记录系统中出现的导致系统不稳定,部分功能出现混乱或部分功能失效一类的错误。例如,数据字段为空,数据操作不可完成,操作出现异常等。WARN(警告):记录系统中不影响系统继续运行,但不符合系统运行正常条件,有可能引起系统错误的信息。例如,记录内容为空,数据内容不正确等。INFO(一般信息):记录系统运行中应该让用户知道的基本信息。例如,服务开始运行,功能已经开户等。DEBUG(调试信息):记录系统用于调试的一切信息,内容或者是一些关键数据内容的输出。Logger实现的ILog接口,ILog定义了5个方法(Debug,Inof,Warn,Error,Fatal)分别对不同的日志等级记录日志。这5个方法还有5个重载。以Debug为例说明一下,其它的和它差不多。ILog中对Debug方法的定义如下:voidDebug(objectmessage);voidDebug(objectmessage,Exceptionex);如果使用Debug(objectmessage,Exceptionex),则无论Layout中是否定义了%exception,默认配置下日志都会输出Exception。包括Exception的Message和Trace。如果使用Debug(objectmessage),则日志是不会输出Exception。最后还要说一个LogManager类,它用来管理所有的Logger。它的GetLogger静态方法,可以获得配置文件中相应的Logger:log4net.ILoglog=log4net.LogManager.GetLogger(logger-name);它将告诉logger如何把一个对象转化为一个字符串记录到日志里。(ILog中定义的接口接收的参数是Object,而不是String。)例如你想把Orange对象记录到日志中,但此时logger只会调用Orange默认的ToString方法而已。所以要定义一个OrangeRender类实现log4net.ObjectRender.IObjectRender接口,然后注册它(我们在本文中的扩展不使用这种方法,而是直接实现一个自定义的Layout)。这时logger就会知道如何把Orange记录到日志中了。Log4net概述Log4net的主要组成部分配置文件详解如何记录日志探讨第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。第二步:程序启动时读取log4net的配置文件。如果是CS程序,在根目录的Program.cs中的Main方法中添加:log4net.Config.XmlConfigurator.Configure();如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加:log4net.Config.XmlConfigurator.Configure();无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:[assembly:log4net.Config.XmlConfigurator()]PS:也可以使用自定义的配置文件第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样?xmlversion=1.0encoding=utf-8?configurationconfigSectionssectionname=log4nettype=log4net.Config.Log4NetConfigurationSectionHandler,log4net//configSectionslog4netrootlevelvalue=WARN/appender-refref=LogFileAppender/appender-refref=ConsoleAppender//rootloggername=testApp.Logginglevelvalue=DEBUG//loggerappendername=LogFileAppendertype=log4net.Appender.FileAppenderparamname=Filevalue=log-file.txt/paramname=AppendToFilevalue=true/layouttype=log4net.Layout.PatternLayoutparamname=Headervalue=[Header]/paramname=Footervalue=[Footer]/paramname=ConversionPatternvalue=%d[%t]%-5p%c[%x]-%m%n//layoutfiltertype=log4net.Filter.LevelRangeFilterparamname=LevelMinvalue=DEBUG/paramname=LevelMaxvalue=WARN//f
本文标题:Log4Net
链接地址:https://www.777doc.com/doc-6853097 .html