Log4net 使用文档(概念)

Log4net 主要有四个组件。分别是 Logger( 记录器 ) Repository( ) Appender( 附着器 ) Layout( 布局 )    

Logger 定义与用途:

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

Root 是一个默认的 Logger ,当一个 root Logger 内容配置一致的时候就会记录两条相同的记录,当在配置文件中找不到 logger 的名字时候,就会使用root的配置。 
 

Repository 定义与用途:

Repository 主要用于负责日志对象组织结构的维护。现在 已经使用LogManager类来维护日志对象组织。

 

Appender 定义及用途:

   定义输出介质,可以把多个 Aappender 附加到一个日志对象中, 一个Appender对象缺省地把所有的日志事件传递到输出流中,我们可以通过Aappender Filters来过滤剩下我们需要的部分。分别有级别过滤(定义级别区间),字符串过滤,可以定义多个filter。such as :LevelMatchFilter、LevelRangeFilter、MDCFilter、NDCFilter、 StringMatchFilter.

 

Layout 定义与用途

Layout 组件用于向用户显示最后经过格式化的输出信息。可以是线性的或一个 XML 文件。 Layout 组件和一个 Appender 组件一起工作。也就是说一个 appender 对象 只能对应一个 layout 对象。

 

 

Log4net DEBUG 信息分级:

一共有七级

级别
允许方法

Boolean 属性

优先级别

 

OFF (拒绝所有的日志请求)                      FATAL                                     ERROR  

  null                                                                    void Fatal(...);                             void Error(...);

  null                                                                    bool IsFatalEnabled;                   bool IsErrorEnabled; 

 Highest                                                              second                                       three

 

 WARN                                                              INFO                                        DEBUG

void Warn(...);                                                     void Info(...);                             void Debug(...);

bool IsWarnEnabled;                                           bool IsInfoEnabled;                   bool IsDebugEnabled;

four                                                                    five                                           six

 

ALL (允许所有的日志请求)

 Null

 Null

 Lowest

 

Log4net 配置方式:

1. 在单独文件里配置(推荐):改变配置不需要重新编译代码,同时也可以在程序运行的过程中修改代码。

2. 在程序代码中配置

 

关联配置文件:

log4net 框架使用 log4net.Config.DOMConfiguratorAttribute log4net.Config.XmlConfigurator 在程序集的级别上定义配置文件。方法有多种的:
1
.可以在项目的 AssemblyInfo.cs 文件里添加以下的语句

  [assembly:log4net.Config.XmlConfigurator(ConfigFile="filename",   ConfigFileExtension="ext",Watch=true/false)]

其中 configFile 设定了配置文件的文件名,路径,扩展名

configFileExtension 设定了被编译的文件使用扩展名字,默认为 config

但是configFileExtension与configFile不能同时使用。在这里我们可以关联我们手动配置的文件,而不使用.net给我们的应用程序配置文件。
eg:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="/Projects/Regular/bin/config/App.log.conf.xml",Watch=true)] 

2 .可以不带参数应用 DOMConfiguratio():

 

 [assembly: log4net.Config.DOMConfigurator()]

3. 也可以在程序代码中用 DOMConfigurator 类打开配置文件。类的构造函数需要一个 FileInfo 对象作参数,以指出要打开的配置文件名。

log4net.Config.DOMConfigurator.Configure(

 

  new FileInfo("TestLogger.Exe.Config"));

 

创建日志对象:

当日志对象没有在配置文件中定义的话,就会使用 root 的祖父节点。

Log4net.ILog log = Log4net.LogManager.GetLogger("MyLogger");

 

输出日志信息:

可以使用输出日志的几种方式:fatal();error();warn();info();debug();

if (log.IsDebugEnabled) log.Debug("message");

 

 

DEBUG 输出格式的意义:

Eg

<param name="ConversionPattern"

   value="%d [%t] %-5p %c [%x] - %m%n"

        />

%m(message): 输出的日志消息,如 ILog.Debug( ) 输出的一条消息

%n(new line): 换行

%d(datetime): 输出当前语句运行的时刻

%r(run time): 输出程序从运行到执行到当前语句时消耗的毫秒数

%t(thread id): 当前语句所在的线程 ID

%p(priority): 日志的当前优先级别,即 DEBUG INFO WARN …等

%c(class): 当前日志对象的名称,例如:

       模式字符串为: %-10c -%m%n

       代码为:

ILog log=LogManager.GetLogger(“Exam.Log”);

log.Debug(“Hello”);

    则输出为下面的形式:

Exam.Log       - Hello

%L :输出语句所在的行号 。包括类目名、发生的线程,以及在代码中的行数。

%F :输出语句所在的文件名

%- 数字:表示该项的最小长度,如果不够,则用空格填充

例如,转换模式为 %r [%t]%-5p %c - %m%n PatternLayout 将生成类似于以下内容的输出:

176 [main] INFO  org.foo.Bar - Located nearest gas station.  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值