Log4net之配置文件

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 使用log4net前要先做一些配置的工作。配置工作可以在配置文件中完成也可以在程序中用代码完成。我们主要讲在配置文件中如何配置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元素布局

 

 

 

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
XML 存储 JSON
使用自定义XML配置文件在.NET桌面程序中保存设置
本文将详细介绍如何在.NET桌面程序中使用自定义的XML配置文件来保存和读取设置。除了XML之外,我们还将探讨其他常见的配置文件格式,如JSON、INI和YAML,以及它们的优缺点和相关的NuGet类库。最后,我们将重点介绍我们为何选择XML作为配置文件格式,并展示一个实用的示例。
126 0
|
Java
log4j.properties日志配置文件内容
log4j.properties日志配置文件内容
70 0
|
6月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
296 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
3月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
5月前
|
设计模式 Java 关系型数据库
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
Spring的配置文件,如何配置端口号,,properties,yml获取配置项等方法,外观模式及其优缺点,日志代表的信息
|
5月前
|
监控 Go
go语言并发实战——日志收集系统(十一)基于etcd来监视配置文件的变化
go语言并发实战——日志收集系统(十一)基于etcd来监视配置文件的变化
|
5月前
|
消息中间件 Kafka Go
go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件
go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件
|
JSON 数据格式
.net core 读取配置文件的几种方式
# 一、Json配置文件 ## 1、这里的配置文件指的是下图 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-c79281ce.png?x-cos-security-token=Agam0Cn5pDWzx5RjFFzmFp5SXifE2lwa11a1f9dbaeac346ddc3b179889543979Cq1MFNxd9AGUyz-E0xgqW-YuUxnToKOaIzGnWLMcgCmVO4YvDOI5Os41fWu
135 0
.net core 读取配置文件的几种方式
|
6月前
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
70 1
|
6月前
|
存储 BI 网络安全
正在等待继续编辑 - Python - 基础知识专题 - 配置文件与日志管理
正在等待继续编辑 - Python - 基础知识专题 - 配置文件与日志管理
54 0