方式一、

  

  <log4net>
<!-- 启动日志 -->
<appender name="PayAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="../Logs/Haier.Design.Web/Pay.log"></param>
<param name="AppendToFile" value="true"></param>
<param name="MaxSizeRollBackups" value="10"></param>
<param name="MaximumFileSize" value="5MB"></param>
<param name="RollingStyle" value="Size"></param>
<param name="StaticLogFileName" value="true"></param>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d - %m%n"></param>
</layout>
</appender>
<category name="Pay.Loger">
<priority value="DEBUG"></priority>
<appender-ref ref="PayAppender"></appender-ref>
</category>
<!--异常日志-->
<appender name="LogAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="../Logs/Haier.Design.Web/"></param>
<param name="AppendToFile" value="true"></param>
<param name="MaxSizeRollBackups" value="10"></param>
<param name="MaximumFileSize" value="3MB"></param>
<param name="RollingStyle" value="Size"></param>
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd&quot;.log&quot;" />
<param name="StaticLogFileName" value="false"></param>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d(%p) %F(%L)%n %m%n"></param>
</layout>
</appender>
<category name="Logerror">
<priority value="ERROR|DEBUG"></priority>
<appender-ref ref="LogAppender"></appender-ref>
</category>
</log4net>

方式二、

  

<log4net>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log//LogError//" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy//yyyyMM//yyyyMMdd-hh'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n====================================== %n记录时间:%date %n线程ID:[%thread] %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}] %n错误描述:%n%message %newline %n--------------------------------------%n"/>
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log//LogInfo//" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy//yyyyMM//yyyyMMdd-hh'.txt'" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline %n====================================== %n记录时间:%date %n线程ID:[%thread] %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}] %n错误描述:%n%message %newline %n--------------------------------------%n"/>
</layout>
</appender>
</log4net>

另外,log4N的优先级是有一定规则的,如下(摘自:http://blog.csdn.net/hu8hong9/article/details/2799199):

Logger hierarchy(层次级别)

Logger都是已经命名的实体。

Logger的名称区分大小写并遵循以下规则:

1、如果A logger的名称如果是B logger名称的前缀(通过“.”连接),则说A logger是B logger的祖父级。

2、如果A logger的名称和B logger的名称之间不存在其他的logger名称,则A logger是B logger的父级。

例子:A logger名称为“Foo.Bar”,B logger名称为“Foo.Bar.Baz”,A为B的父级。名称为“System”的logger是名称为“System.Text.StringBuilder”的祖父级。

Root logger位于logger层次级别中的顶级。

它有例外的三条规则:

1、Root logger总是存在的。

2、Root logger不能通过名称或取。

3、Root logger 有一个默认的Level 值为 Debug。

Logger 可以通过log4net.LogManager类的静态方法GetLogger获取。

Level值:ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF

Level 继承规则:如果一个logger没有定义Level,它的Level值将从它的父级(定义了Level)继承。

日志纪录请求通过调用logger实例的输出方法实现。

这些输出方法有Debug,Info,Warn,Error和Fatal。

通过定义,输出方法决定了日志纪录请求的Level。

例如,log是一个logger实例,那么语句log.Info(“..”)的日志纪录请求Level为INFO。 如果日志纪录请求的Level比logger本身定义(或继承)的Level高,则请求是可行的,否则不可行。

简单规则:如果日志记录请求的Level为L,logger本身定义(或继承)Level为K,当L>=K时,日志纪录请求是可行的。

Level级别:DEBUG <INFO<WARN<ERROR<FATAL

通过名称,调用log4net.LogManager.GetLogger方法,可以获取同一个logger的实例引用。

这样在配置了一个logger后,不用在代码中传递引用而可以获取同一个logger的引用了。

与生物上的亲子关系(父亲总是先于孩子)基本相反,在log4net 里,logger可以被创建和配置成任何顺序。

特别的是,一个父级logger可能比子级logger后实例化,但却可以在子级中查找到。

log4N配置方式的更多相关文章

  1. Hibernate配置方式

    Hibernate配置方式 Hibernate给人的感受是灵活的,要达到同一个目的,我们可以使用几种不同的办法.就拿Hibernate配置来说,常用的有如下三种方式,任选其一. 在 hibernate ...

  2. ASP.NET 操作Excel中的DCOM配置方式

    具体配置方式如下: 1. 组件服务管理窗口 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,在组件服务->计算机->我的电脑->DCom配置->找到Microsof ...

  3. ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】

    本文主要阅读目录如下: 1.简介Kettle的Kitchen和Span 2.命令行调度任务配置方式 3.后台进程配置运行方式 4.Windows任务设置 5.Demo下载 1.简介Kettle的Kit ...

  4. c3p0三种配置方式(automaticTestTable)

    c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/551331.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文 ...

  5. 【Spring3.0系列】---Bean不同配置方式比较 和适用场合

    Bean不同配置方式比较1.基于XML配置定义:在XML文件中通过<bean>元素定义Bean,例如<bean class="com.bbt.UserDao"/& ...

  6. struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)

    第01步:导包 第02步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  7. struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)

    课时22 基于XML配置方式实现对action的所有方法进行校验   使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...

  8. Spring注解和配置方式

    Spring提供了一个org.springframework.beans.factory.FactoryBean工厂类接口,用户可以通过实现该接口定制实例化Bean的逻辑. 从Spring3.0开始, ...

  9. spring AOP advice 类型 和 通用的切点的配置方式

    spring aop advice的类型: 1.前置通知(before advice) 2.返回后通知(after returning advice) 3.抛出异常后通知(after throwing ...

随机推荐

  1. QT运行时加载UI文件

      写QT程序里运行时加载UI文件,代码如下: 点击(此处)折叠或打开 #include "keyboard.h" #include <QtUiTools> #incl ...

  2. QT线程(一):线程类

      线程之间共享数据,但又单独执行: QT线程QThread是平台无关的: 通常主线程从main开始执行,而在主线程中创建其他线程,其他线程派生于QThread: 1.线程优先级 总共8个优先级:线程 ...

  3. [转]使用Beaglebone Black的SPI

    分类: Beaglebone Black2013-11-24 18:21 678人阅读 评论(6) 收藏 举报 beaglebone blackbeagleboneSPIdevice tree   目 ...

  4. IIS8无法调用Oracle.DataAccess .dll问题

    之前在.net平台下操作Oracle都是用的oracle.dataaccell.dll引用,但是服务器升级为II8后,发布的新服务有关Oracle数据库部分都无法运行,调试了好久发现是IIS8不支持低 ...

  5. Ubuntu上架设PPPoE Server

    一.安裝 PPPoE Server Software1)sudo apt-get install ppp2)rp-pppoe(非apt套件)wget -c http://www.roaringpeng ...

  6. 玩转Android之Picasso使用详详详详详详解,从入门到源码剖析!!!!

    Picasso是Squareup公司出的一款图片加载框架,能够解决我们在Android开发中加载图片时遇到的诸多问题,比如OOM,图片错位等,问题主要集中在加载图片列表时,因为单张图片加载谁都会写.如 ...

  7. 匹配url - 正则表达式

    /^\/(.+)\/$/g.exec(req.url)

  8. html5标签兼容ie6,7,8

    注册博客园已经三年了,这三年一直在忙,没时间写博文.也许是忙,也许是懒吧!当然这三年发生了很多事,我也从开发人员转变为前端人员. 是时候对所学的,所用的知识做一下沉淀了.就从这一篇开始吧! html5 ...

  9. AWS RDS 使用笔记

    创建VPC安全组 添加VPC子网 创建RDS子网组 创建RDS参数组 创建MySQL实例 查看RDS终端节点 使用 MySQL 监视器与数据库实例上的数据库连接 安装mysql client $ su ...

  10. C++学习(四)

    一.拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆.2.形如class X {  X (const X& that) { ... }};的构造函数 ...