• Log4net介绍


    一、Log4net介绍

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

    二、log4net的结构

      log4net有四种主要的组件,分别是Logger(记录器),Repository(库),Appender(附着器),Layout(布局);

    2.1 Logger

      Logger是应用程序交互的主要组件,它用来产生日志消息。产生的日志消息并不直接显示,还要预先经过Layout的格式化处理后才会输出。

    2.2 Repository

      Repository主要用于负责日志对象组织结构的维护。在log4net的以前版本中,框架仅支持分等级的组织结构(hierarchical organization)。这种等级结构本质上是库的一个实现,并且定义在log4net.Repository.Hierarchy 名字空间中。要实现一个Repository,需要实现log4net.Repository.ILoggerRepository 接口。但是通常并不是直接实现该接口,而是以log4net.Repository.LoggerRepositorySkeleton为基类继承。体系库 (hierarchical repository )则由log4net.Repository.Hierarchy.Hierarchy类实现。

      如果你是个log4net框架的使用者,而非扩展者,那么你几乎不会在你的代码里用到Repository的类。相反的,你需要用到LogManager类来自动管理库和日志对象。

    2.3 Appender

      一个好的日志框架应该能够产生多目的地的输出。比如说输出到控制台或保存到一个日志文件。log4net 能够很好的满足这些要求。它使用一个叫做Appender的组件来定义输出介质。正如名字所示,这些组件把它们附加到Logger日志组件上并将输出传递到输出流中。你可以把多个Appender组件附加到一个日志对象上。 Log4net框架提供了几个Appender组件。关于log4net提供的Appender组件的完整列表可以在log4net框架的帮助手册中找到。有了这些现成的Appender组件,一般来说你没有必要再自己编写了。但是如果你愿意,可以从log4net.Appender.AppenderSkeleton类继承。

    • AdoNetAppender:利用ADO.NET记录到数据库的日志。
    • AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
    • AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
    • BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
    • ConsoleAppender:将日志输出到控制台。
    • EventLogAppender:将日志写到Windows Event Log. 
    • FileAppender:将日志写到文件中。
    • LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下). 
    • MemoryAppender:将日志存到内存缓冲区。
    • NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
    • RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
    • RemotingAppender:通过.NET Remoting将日志写到远程接收端。
    • RollingFileAppender:将日志以回滚文件的形式写到文件中。
    • SmtpAppender:将日志写到邮件中。
    • TraceAppender:将日志写到.NET trace 系统。
    • UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。

    2.4 Appender Filter

      一个Appender 对象缺省地将所有的日志事件传递到输出流。Appender的过滤器(Appender Filters) 可以按照不同的标准过滤日志事件。在log4net.Filter的名字空间下已经有几个预定义的过滤器。使用这些过滤器,你可以按照日志级别范围过滤日志事件,或者按照某个特殊的字符串进行过滤。你可以在API的帮助文件中发现更多关于过滤器的信息。

    2.5 Layout

      Layout 组件用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。可以是线性的或一个XML文件。Layout组件和一个Appender组件一起工作。API帮助手册中有关于不同Layout组件的列表。一个Appender对象,只能对应一个Layout对象。要实现你自己的Layout类,你需要从log4net.Layout.LayoutSkeleton类继承,它实现了ILayout接口。

  • 相关阅读:
    sort color (荷兰国旗)
    先序遍历和后序遍历构建二叉树
    二叉树的遍历
    排序
    内存相关内容
    chrome控制台console方法表
    记一次移动端CSS引发的小Bug
    JavaScript的事件
    浅谈webpack打包原理
    JS模块化进程
  • 原文地址:https://www.cnblogs.com/AngelLee2009/p/3826695.html
Copyright © 2020-2023  润新知