Log4net之配置文件

使用log4net前要先做一些配置的工作。配置工作可以在配置文件中完成也可以在程序中用代码完成。我们主要讲在配置文件中如何配置log4net,因为这样更方便灵活,而且还不用重新编译代码。

(一)配置文件

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

<configuration>

 

  <configSections>

    <section name="log4net"

             type="log4net.Config.Log4NetConfigurationSectionHandler" />

  </configSections>

 

  <log4net>

 

    <root>

      <level value="WARN" />

      <appender-ref ref="LogFileAppender" />

      <appender-ref ref="ConsoleAppender" />

    </root>

 

    <logger name="testApp.Logging">

      <level value="DEBUG"/>

    </logger>

 

    <appender name="LogFileAppender"

              type="log4net.Appender.FileAppender" >

      <param name="File" value="log-file.txt" />

      <param name="AppendToFile" value="true" />

 

      <layout type="log4net.Layout.PatternLayout">

        <param name="Header" value="[Header]&#13;&#10;"/>

        <param name="Footer" value="[Footer]&#13;&#10;"/>

        <param name="ConversionPattern"

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

      </layout>

 

      <filter type="log4net.Filter.LevelRangeFilter">

        <param name="LevelMin" value="DEBUG" />

        <param name="LevelMax" value="WARN" />

      </filter>

 

    </appender>

 

    <appender name="ConsoleAppender"

              type="log4net.Appender.ConsoleAppender" >

      <layout type="log4net.Layout.PatternLayout">

        <param name="ConversionPattern"

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

      </layout>

    </appender>

 

  </log4net>

</configuration>

log4net的配置可以放在应用程序的默认配置文件中(app.configweb.config),也可以再你自己的配置文件中。(如果log4net的配置不是放在应用程序的配置文件里,而是在自己定义的文件里,<configSection>节点里的<section>节点是不需要的。)

(二)节点分析

在配置章节中,定义section节点。节点名称为:须为log4net,且大小写敏感。

<configSections>

    <section name="log4net"

             type="log4net.Config.Log4NetConfigurationSectionHandler" />

  </configSections>

 

(三)Log4net章节内容

debug 可选,取值是truefalse,默认是false。设置为true,开启log4net的内部调试。

update 可选,取值是Merge(合并)Overwrite(覆盖),默认值是Merge。设置为Overwrite,在提交配置的时候会重置已经配置过的库。  

threshold 可选,取值是repository(库)中注册的level,默认值是ALL

支持的子元素:

·appender  0或多个

·logger 0或多个

·renderer 0或多个

·root 最多一个

·param 0或多个

(四)两个Appenders(输出源)

定义日志的输出方式,只能作为 log4net 的子元素。name属性必须唯一,type属性必须指定

支持的属性:

name 必须的,Appender对象的名称

type 必须的,Appender对象的输出类型

支持的子元素:

·appender-ref 0个或多个,允许此appender引用其他appender,并不是所以appender类型都支持。

·filter 0个或多个,定义此app使用的过滤器。

·layout 最多一个。定义appender使用的输出格式。

·param 0个或多个, 设置Appender类中对应的属性的值。

 

·LogFileAppender

节点日志文件输出type="log4net.Appender.FileAppender"

·ConsoleAppender

节点控制台输出。type="log4net.Appender.ConsoleAppender"

 

(五)一个root

logger,所有其它logger都默认继承它。root元素没有属性。

支持的子元素:

·appender-ref 0个或多个,要引用的appender的名字。

·level 最多一个。 只有在这个级别或之上的事件才会被记录。

·param 0个或多个, 设置一些参数。

<root>

      <level value="WARN" />

      <appender-ref ref="LogFileAppender" />

      <appender-ref ref="ConsoleAppender" />

    </root>

(六)Logger

支持的属性:

name 必须的,logger的名称

additivity 可选,取值是truefalse,默认值是true。设置为false时将阻止父logger中的appender

支持的子元素:

·appender-ref 0个或多个,要引用的appender的名字。

·level 最多一个。 只有在这个级别或之上的事件才会被记录。

·param 0个或多个, 设置一些参数。

 

<logger name="testApp.Logging">

      <level value="DEBUG"/>

    </logger>

(七)Layout

布局,只能作为<appender>的子元素。

支持的属性:

type 必须的,Layout的类型

支持的子元素:param 0个或多个, 设置一些参数。

(八)Filter

过滤器,只能作为<appender>的子元素。

 

支持的属性:

type 必须的,Filter的类型

支持的子元素:param 0个或多个, 设置一些参数。

(九)Param

<param>元素可以是如何元素的子元素。

 

支持的属性:

name 必须的,取值是父对象的参数名。

value 可选的,valuetype中,必须有一个属性被指定。value是一个能被转化为参数值的字符串。

type 可选的,valuetype中,必须有一个属性被指定。type是一个类型名,如果type不是在log4net程序集中定义的,就需要使用全名。

支持的子元素:param 0个或多个, 设置一些参数。

 

附:log4netxsd schema文件。

http://www.cnblogs.com/didasoft/archive/2007/07/23/log4net_xsd.html(用的时候,请感谢一下作者)

 这个版本已经旧了。再提供一个新版本

log4net新版本 请保留文件中的版本信息。

再补充一下:此版本与log4net最新版1.2.10还不能完全兼容。现已经发现一点:

mssql数据库写日志时,connectionType 请使用

官网提供的:

System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

自己可以修改一下xsd

如果谁有完全适应的版本请提供一下。

 更多内容请参考:http://blog.csdn.net/lyjcn/archive/2009/08/11/4432833.aspx(非常感谢作者。)

  

布局附表 

 

 

布局

Class

Description

ExceptionLayout

只呈现日志事件中异常的文本信息

Layout2RawLayoutAdapter

适应于Ilayout接口到IRawLayout

LayoutSkeleton

扩展这个抽象类来创建自定义的布局格式

PatternLayout

可以通过类型字符串来配置的布局

PatternLayout.ConverterInfo

把转换器名字映射为转换器类型的包装类

RawLayoutConverter

IrawLayout接口的类型转换器

RawPropertyLayout

从日志事件中提取属性值

RawTimeStampLayout

从日志事件中提取日期

RawUtcTimeStampLayout

从日志事件中提取日期

SimpleLayout

很简单的布局

XmlLayout

把日志事件格式化为XML元素的布局

XmlLayoutBase

把日志事件格式化为XML元素的布局

XmlLayoutSchemalLog4j

把日志事件格式化为与log4j结构兼容的XML元素布局

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值