使用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]
"/>

<param name="Footer" value="[Footer]
"/>

<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.config或web.config),也可以再你自己的配置文件中。(如果log4net的配置不是放在应用程序的配置文件里,而是在自己定义的文件里,<configSection>节点里的<section>节点是不需要的。)

(二)节点分析

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

<configSections>

<section name="log4net"

type="log4net.Config.Log4NetConfigurationSectionHandler" />

</configSections>

(三)Log4net章节内容

debug 可选,取值是true或false,默认是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 可选,取值是true或false,默认值是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 可选的,value和type中,必须有一个属性被指定。value是一个能被转化为参数值的字符串。

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

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

附:log4net的xsd 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元素布局

转载于:https://www.cnblogs.com/jams742003/archive/2009/12/10/1620928.html

Log4net之配置文件相关推荐

  1. 【log4net】配置文件

    相关资料: http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 注意: //如果为了使得应用程序的配置文件(web/app.con ...

  2. 在C#代码中应用Log4Net 中配置文件的解释

    一个完整的配置文件的例子如下所示,这个是"在C#代码中应用Log4Net(二)"中使用的配置文件. <log4net><!-- 错误日志类--><lo ...

  3. log4net保存到数据库系列二:独立配置文件中配置log4net

    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...

  4. log4net使用与配置文件

    什么是log4net? log4net是一个工具,帮助程序员将日志语句输出到各种输出目标. 如果应用程序出现问题,启用日志记录以便可以找到问题会很有帮助.使用log4net,可以在运行时启用日志记录, ...

  5. C#使用log4net记录日志

    1.下载 log4net 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.在App.config中输入内容(不存在自己创建) <?xml version=& ...

  6. Log4net 用法 本地日志

    1.下载log4net.dll,获取方法可以官网下载,地址:http://logging.apache.org/log4net/download_log4net.cgi,下载的是源代码,vs编译后在项 ...

  7. asp.net + winform + log4net 使用示例|using log4net with asp.net/winform

    log4net, 是 apache.org 在 log4j的基础上推出的针对.NET程序的开源的日志组件. log4net目前的最新版本是 1.2.10,log4net支持的日志保存方式,可谓丰富之极 ...

  8. Log4Net 使用 FileAppender (log4net 1.2.10.0)

    项目中引入log4net.dll Global.asax.cs 中加入 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension=&q ...

  9. NetCore2.x 使用Log4Net(一)

    前言:本章仅仅是Log4Net的基本简单的运用,后续章节会按照我的项目使用情况进行深入研究 1.项目搭建 新建一个基于.netCore2.x的Web项目          =>   过程略 给新 ...

最新文章

  1. 网站优化常见的五个易错点!
  2. python学起来难不难-Python自学难不难,培训班推荐?
  3. 什么是操作系统 PV 操作
  4. c分布 的程序设计语言,#2020学习打卡##C程序设计语言# C语言中的随机数函数解析...
  5. grep从文件末尾开始找_c++ 开始之旅
  6. python用xlrd怎么清洗数据_用Python进行数据清洗!
  7. 【Hibernate】could not instantiate class.. from tuple] with root cause
  8. Golang之变量去哪儿
  9. thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口
  10. element label动态赋值_基于Element封装可拖动放大缩小的弹窗
  11. 有向无环图DAG 拓扑排序 代码解释
  12. 鸿蒙hms在哪儿更新,原创 华为鸿蒙系统已开始实施!华为EMUI10.1再更新:HMS将决定战略方向...
  13. Vsftp在Ubuntu的安装与配置
  14. 力扣 填充每个节点的下一个右侧节点指针
  15. feign整合hystrix开启hystrix后启动报错_Spring Cloud进阶之路 | 六:断路器(hystrix)...
  16. java url压缩_URL短地址压缩算法 微博短地址原理解析 (Java实现)
  17. mysql 主从复制日志_mysql主从复制基于日志复制
  18. SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)
  19. 文件夹批量重命名编号的快速方法
  20. 如何批量压缩图片?这几个方法值得一试

热门文章

  1. anaconda3配置环境变量_Python:Anaconda安装及LabelMe配置(1)
  2. java 把char转换成int型,java如何把char型数据转换成int型数据(转)
  3. mysql怎么加全局锁_MySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等)
  4. 基于ECS部署LAMP环境实验记录
  5. pycharm安装numpy
  6. 相机数据格式设置不对踩坑
  7. pythonselenium实战 excel读取和写入_Python3.6+selenium2.53.6自动化测试_读取excel文件的方法...
  8. centos 7.6安装java_Docker安装zabbix5.0LTS教程和优化
  9. 计算机二级c语言程序,二级C语言考试系统
  10. 分布式系统唯一ID生成方案汇总