log4net配置使用说明


此文档是我在大道至简的基础上修改而成,再次表示谢谢!

(一)log4net的标准配置文档示例

<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

<configSections>

<sectionname="log4net"

type="log4net.Config.Log4NetConfigurationSectionHandler"/>

</configSections>

<log4net>

<root>

<levelvalue="WARN"/>

<appender-refref="LogFileAppender"/>

<appender-refref="ConsoleAppender"/>

</root>

<loggername="testApp.Logging">

<levelvalue="DEBUG"/>

</logger>

<appendername="LogFileAppender"type="log4net.Appender.FileAppender">

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

<paramname="AppendToFile"value="true"/>

<layouttype="log4net.Layout.PatternLayout">

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

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

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

</layout>

<filtertype="log4net.Filter.LevelRangeFilter">

<paramname="LevelMin"value="DEBUG"/>

<paramname="LevelMax"value="WARN"/>

</filter>

</appender>

<appendername="ConsoleAppender"type="log4net.Appender.ConsoleAppender">

<layouttype="log4net.Layout.PatternLayout">

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

</layout>

</appender>

</log4net>

</configuration>

(二)log4net配置文件与程序的关联

log4net的配置可以放在应用程序的默认配置文件中(app.configweb.config),也可以在自己指定的配置文件中。log4net框架中是使用log4net.Config.XmlConfigurator在程序集的级别上定义配置文件。

1winform程序中,如果配置在app.config文件中,配置文件的结构如示例。这时找到当前项目的Assemblyinfo.cs文件添加

[assembly:log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch= true)] app.config文件属性设置保持默认。

2winform程序中,如果配置在自定义文件中如“Config.txt”中。这时找到当前项目的Assemblyinfo.cs文件添加

[assembly:log4net.Config.XmlConfigurator(ConfigFile="config.txt", Watch =true)] Config.txt文件的属性要设置为复制。就是要输出到输出目录。

这个时候配置可以省略示例模版中<configSection>节点里的<section>节点。

ConfigFile:指出了我们的配置文件的路径及文件名,包括扩展名。

ConfigFileExtension:如果我们对被编译程序的程序集使用了不同的文件扩展名,那么我们需要定义这个属性,缺省的,程序集的配置文件扩展名为”config”

Watch (Boolean属性):log4net框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为true,那么FileSystemWatcher将会被用来监视文件的改变,重命名,删除等事件。

其中:ConfigFileConfigFileExtension属性不能同时使用,ConfigFile指出了配置文件的名字,例如,ConfigFile=”Config.txt”

ConfigFileExtension则是指明了和可执行程序集同名的配置文件的扩展名,例如,应用程序的名称是”test.exe”,ConfigFileExtension=”txt”,则配置文件就应该是”test.exe.txt”

也可以在程序代码中用DOMConfigurator类打开配置文件。类的构造函数需要一个FileInfo对象作参数,以指出要打开的配置文件名。这个方法和前面在程序集里设置属性打开一个配置文件的效果是一样的。

log4net.Config.DOMConfigurator.Configure(newFileInfo("TestLogger.Exe.Config"));

DOMConfigurator类还有一个方法ConfigureAndWatch(..),用来配置框架并检测文件的变化。

(二)节点分析

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

<configSections>

<sectionname="log4net"

type="log4net.Config.Log4NetConfigurationSectionHandler"/>

</configSections>

(三)log4net节点说明

1)节点支持的属性,debug,update,threshold三个属性

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

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

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

2)支持子元素

appender 0或多个

logger 0或多个

renderer 0或多个

root 最多一个

param 0或多个

(四)root节点说明

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

2)支持的子元素

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

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

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

<root>

<levelvalue="WARN"/>

<appender-refref="LogFileAppender"/>

<appender-refref="ConsoleAppender"/>

</root>

(五)Logger节点说明

1)支持的属性name,Additivity两个属性

name必须的,logger的名称

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

2)支持的子元素:

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

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

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

例如:<loggername="testApp.Logging">

<levelvalue="DEBUG"/>

</logger>

(六)Appender节点说明

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

name 必须的,Appender对象的名称

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

2)支持的子元素:

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

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

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

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

例如:LogFileAppender节点日志文件输出。type="log4net.Appender.FileAppender"

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

(七)Filter节点说明

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

支持的属性:

type 必须的,Filter的类型

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

(八)Layout节点说明

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

支持的属性:

type 必须的,Layout的类型

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

(九)Param

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

支持的属性:

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

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

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

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

(十)Log4net xsd

好多刚开始接触.Net不久的人一定会问.xsd文件是干嘛的?通俗点说这东西就是用来制定目标xm文档规则的,它是解释性的。大家一定有这个经验就是当你在App.config文件中写配置文件时会自动出现智能提示,而且在书写不规范或错误时还会出现警告。在后台其作用的就是对应的.xsd文件。好了不聊这个了,为了让我们在编辑log4Net配置文件时,也能有对应的提示和纠错功能。下面是我找到的log4net.xsd文件(郁闷,好像不能直接上传。哎)

log4net.xsd

使用方法是,把这个文件拷贝到D:\Program Files\Microsoft Visual Studio 8\Xml\Schemas目录下(根据你vs的安装目录修改地址),在配置log4net结点时,加上xmlns="urn:log4net"的命名空间。就可以获得智能提示和正确的错误提醒。

<log4net xmlns="urn:log4net">

在后续中,我将提供log4net输出到不同媒介的具体示例。

优质内容筛选与推荐>>
1、C# 创建线程的多种方式之Thread类基础知识
2、五分钟读懂UML类图(转)
3、CF 1077D - Cutting Out (二分)
4、Storm storm API(二)
5、<Trie> 212 <Array> 229


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号