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]
"/>
<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之配置文件相关推荐
- 【log4net】配置文件
相关资料: http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 注意: //如果为了使得应用程序的配置文件(web/app.con ...
- 在C#代码中应用Log4Net 中配置文件的解释
一个完整的配置文件的例子如下所示,这个是"在C#代码中应用Log4Net(二)"中使用的配置文件. <log4net><!-- 错误日志类--><lo ...
- log4net保存到数据库系列二:独立配置文件中配置log4net
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...
- log4net使用与配置文件
什么是log4net? log4net是一个工具,帮助程序员将日志语句输出到各种输出目标. 如果应用程序出现问题,启用日志记录以便可以找到问题会很有帮助.使用log4net,可以在运行时启用日志记录, ...
- C#使用log4net记录日志
1.下载 log4net 右键引用,选择 管理NuGet程序包,选择浏览,输入log4net,然后点击下载 2.在App.config中输入内容(不存在自己创建) <?xml version=& ...
- Log4net 用法 本地日志
1.下载log4net.dll,获取方法可以官网下载,地址:http://logging.apache.org/log4net/download_log4net.cgi,下载的是源代码,vs编译后在项 ...
- asp.net + winform + log4net 使用示例|using log4net with asp.net/winform
log4net, 是 apache.org 在 log4j的基础上推出的针对.NET程序的开源的日志组件. log4net目前的最新版本是 1.2.10,log4net支持的日志保存方式,可谓丰富之极 ...
- Log4Net 使用 FileAppender (log4net 1.2.10.0)
项目中引入log4net.dll Global.asax.cs 中加入 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension=&q ...
- NetCore2.x 使用Log4Net(一)
前言:本章仅仅是Log4Net的基本简单的运用,后续章节会按照我的项目使用情况进行深入研究 1.项目搭建 新建一个基于.netCore2.x的Web项目 => 过程略 给新 ...
最新文章
- 网站优化常见的五个易错点!
- python学起来难不难-Python自学难不难,培训班推荐?
- 什么是操作系统 PV 操作
- c分布 的程序设计语言,#2020学习打卡##C程序设计语言# C语言中的随机数函数解析...
- grep从文件末尾开始找_c++ 开始之旅
- python用xlrd怎么清洗数据_用Python进行数据清洗!
- 【Hibernate】could not instantiate class.. from tuple] with root cause
- Golang之变量去哪儿
- thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口
- element label动态赋值_基于Element封装可拖动放大缩小的弹窗
- 有向无环图DAG 拓扑排序 代码解释
- 鸿蒙hms在哪儿更新,原创 华为鸿蒙系统已开始实施!华为EMUI10.1再更新:HMS将决定战略方向...
- Vsftp在Ubuntu的安装与配置
- 力扣 填充每个节点的下一个右侧节点指针
- feign整合hystrix开启hystrix后启动报错_Spring Cloud进阶之路 | 六:断路器(hystrix)...
- java url压缩_URL短地址压缩算法 微博短地址原理解析 (Java实现)
- mysql 主从复制日志_mysql主从复制基于日志复制
- SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)
- 文件夹批量重命名编号的快速方法
- 如何批量压缩图片?这几个方法值得一试
热门文章
- anaconda3配置环境变量_Python:Anaconda安装及LabelMe配置(1)
- java 把char转换成int型,java如何把char型数据转换成int型数据(转)
- mysql怎么加全局锁_MySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等)
- 基于ECS部署LAMP环境实验记录
- pycharm安装numpy
- 相机数据格式设置不对踩坑
- pythonselenium实战 excel读取和写入_Python3.6+selenium2.53.6自动化测试_读取excel文件的方法...
- centos 7.6安装java_Docker安装zabbix5.0LTS教程和优化
- 计算机二级c语言程序,二级C语言考试系统
- 分布式系统唯一ID生成方案汇总