本文转自:http://my.oschina.net/looly/blog/298675

推荐参考:http://blog.csdn.net/haidage/article/details/6794509

 
appender : 自定义, 输出目的地, 目的地, 到一个给定的
 

一:根节点 包含的属性:

  • scan
    当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
  • scanPeriod
    设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
  • debug
    当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

例如:

<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 其他配置省略-->
</configuration>

  

二:根节点 的子节点:

2.1设置上下文名称:<contextName>

每个logger都关联到logger上下文,默认上下文名称为default。但可以使用<contextName>设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改。


<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>myAppName</contextName>
<!-- 其他配置省略-->
</configuration>  

2.2设置变量: <property>

用来定义变量值的标签,<property> 有两个属性name和value;

  • name: 变量的名称
  • value: 的值时变量定义的值。

通过<property>定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。

例如使用<property>定义上下文名称,然后在<contentName>设置logger上下文时使用。


<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="APP_Name" value="myAppName" />
<contextName>${APP_Name}</contextName>
<!-- 其他配置省略-->
</configuration>  

2.3获取时间戳字符串:<timestamp>

两个属性:

  • key: 标识此<timestamp> 的名字;
  • datePattern: 设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。

例如将解析配置文件的时间作为上下文名称:


<configuration scan="true" scanPeriod="60 seconds" debug="false">
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<contextName>${bySecond}</contextName>
<!-- 其他配置省略-->
</configuration>  

2.4设置loger:

<loger>

用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender><loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。

  • name
    用来指定受此loger约束的某一个包或者具体的某一个类。

  • level
    用来设置打印级别,大小写无关:TRACEDEBUG, INFO,WARN,ERROR,ALLOFF,还有一个特俗值INHERITED或者同义词NULL`,代表强制执行上级的级别。 
    如果未设置此属性,那么当前loger将会继承上级的级别。

  • addtivity
    是否向上级loger传递打印信息。默认是true。

<root>

也是 元素,但是它是根loger。只有一个level属性,应为已经被命名为"root”.

  • level: 用来设置打印级别,大小写无关:TRACEDEBUGINFOWARNERRORALL 和 OFF,不能设置为INHERITED或者同义词NULL。 
    默认是DEBUG。

<loger><root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger

例如: 
LogbackDemo.java类


package logback;  

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class LogbackDemo {
private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);
public static void main(String[] args) {
log.trace("======trace");
log.debug("======debug");
log.info("======info");
log.warn("======warn");
log.error("======error");
}
}  

三、logback.xml配置文件

第1种:只配置root

<configuration>   

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <root level="INFO">
<appender-ref ref="STDOUT" />
</root> </configuration>  

其中appender的配置表示打印到控制台(稍后详细讲解appender );

<root level="INFO">将root的打印级别设置为“INFO”,指定了名字为“STDOUT”的appender。

当执行logback.LogbackDemo类的main方法时,root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;

打印结果如下:

13:30:38.484 [main] INFO  logback.LogbackDemo - ======info
13:30:38.500 [main] WARN logback.LogbackDemo - ======warn
13:30:38.500 [main] ERROR logback.LogbackDemo - ======error   

第2种:带有loger的配置,不指定级别,不指定appender:(自身不打印,传递到上级打印)

<configuration>   

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <!-- logback为java中的包 -->
<logger name="logback"/> <root level="DEBUG">
<appender-ref ref="STDOUT" />
</root> </configuration>

其中appender的配置表示打印到控制台(稍后详细讲解appender ); 
<logger name="logback" />将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级<root>的日志级别“DEBUG”; 
没有设置addtivity,默认为true,将此loger的打印信息向上级传递; 
没有设置appender,此loger本身不打印任何信息。 
<root level="DEBUG">将root的打印级别设置为“DEBUG”,指定了名字为“STDOUT”的appender。

当执行logback.LogbackDemo类的main方法时,因为LogbackDemo 在包logback中,所以首先执行<logger name="logback" />,将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root,本身并不打印; 
root接到下级传递的信息,交给已经配置好的名为“STDOUT”的appender处理,“STDOUT”appender将信息打印到控制台;

打印结果如下:

13:19:15.406 [main] DEBUG logback.LogbackDemo - ======debug
13:19:15.406 [main] INFO logback.LogbackDemo - ======info
13:19:15.406 [main] WARN logback.LogbackDemo - ======warn
13:19:15.406 [main] ERROR logback.LogbackDemo - ======error  

第3种:带有多个loger的配置,指定级别,指定appender:


<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender> <!-- logback为java中的包 -->
<logger name="logback"/>
<!--logback.LogbackDemo:类的全路径 -->
<logger name="logback.LogbackDemo" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
</logger> <root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>

其中appender的配置表示打印到控制台(稍后详细讲解appender );

<logger name="logback" />将控制logback包下的所有类的日志的打印,但是并没用设置打印级别,所以继承他的上级<root>的日志级别“DEBUG”; 
没有设置addtivity,默认为true,将此loger的打印信息向上级传递; 
没有设置appender,此loger本身不打印任何信息。

<logger name="logback.LogbackDemo" level="INFO" additivity="false">控制logback.LogbackDemo类的日志打印,打印级别为“INFO”; 
additivity属性为false,表示此loger的打印信息不再向上级传递, 
指定了名字为“STDOUT”的appender。

<root level="DEBUG">将root的打印级别设置为“ERROR”,指定了名字为“STDOUT”的appender。

当执行logback.LogbackDemo类的main方法时,先执行<logger name="logback.LogbackDemo" level="INFO" additivity="false">,将级别为“INFO”及大于“INFO”的日志信息交给此loger指定的名为“STDOUT”的appender处理,在控制台中打出日志,不再向次loger的上级 <logger name="logback"/> 传递打印信息; 
<logger name="logback"/>未接到任何打印信息,当然也不会给它的上级root传递任何打印信息;

打印结果如下:

14:09:01.531 [main] INFO  logback.LogbackDemo - ======info
14:09:01.531 [main] INFO logback.LogbackDemo - ======info
14:09:01.531 [main] WARN logback.LogbackDemo - ======warn
14:09:01.531 [main] WARN logback.LogbackDemo - ======warn
14:09:01.531 [main] ERROR logback.LogbackDemo - ======error
14:09:01.531 [main] ERROR logback.LogbackDemo - ======error
 

logback logback.xml 常用配置详解(转)的更多相关文章

  1. logback logback.xml常用配置详解(三)

    logback logback.xml常用配置详解 <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之 ...

  2. logback logback.xml常用配置详解(一)<configuration> and <logger>

    logback logback.xml常用配置详解(一)<configuration> and <logger> 博客分类: Log java loglogback  原创文章 ...

  3. [转] logback logback.xml常用配置详解(一)<configuration> and <logger>

    转载文章:原文出处:http://aub.iteye.com/blog/1101260 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 根节点< ...

  4. web.xml常用配置详解

    web.xml常用配置详解 context-param 指定 ServletContext(上下文) 配置文件路径,基本配置一般是Spring配置文件,或者是spring-security的配置文件. ...

  5. 【转】logback logback.xml常用配置详解(二)<appender>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  6. 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  7. 【转】logback logback.xml常用配置详解(三) <filter>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  8. logback logback.xml常用配置详解(二)<appender>

    转自:http://aub.iteye.com/blog/1101260 logback 常用配置详解(二) <appender> <appender>: <append ...

  9. logback logback.xml 常用配置详解

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

随机推荐

  1. Tomcat服务器的默认端口是多少?怎样修改tomcat的端口?

    Tomcat服务器的默认端口是多少?怎样修改tomcat的端口? 解答:默认端口为8080,可以通过service.xml的Connector元素的port属性来修改端口.

  2. 如何获得<div id=”div1”>This is first layer</div>中的值?

    如何获得<div id=”div1”>This is first layer</div>中的值? 解答: <script> var div1=Document.ge ...

  3. SQLServer2008设置开启远程连接

    SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置:    1,SQL Serve ...

  4. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败解决方案

    第一种方法测试过可用:地址:http://download.csdn.net/detail/itjjfamily/8853509 下面是第二种: .NET导出Excel遇到的80070005错误的解决 ...

  5. 如何在ChemDraw 15.1 Pro中添加模板

    ChemDraw化学绘图工具为了方便用户的使用,特地开发了众多的各种类型模板.用户在绘制一些简单或复杂的化学结构式时,可以直接从ChemDraw模板库里直接调用使用,虽然ChemDraw模板非常的丰富 ...

  6. ipv6修改DNS服务-首选DNS服务器:240c::6666

    下一代互联网国家工程中心推出的IPv6 DNS服务 首选DNS服务器:240c::6666 备用DNS服务器:240c::6644   来自下一代互联网国家工程中心官网消息显示,日前,下一代互联网国家 ...

  7. svn管理的项目迁移到tfs

    1.将.vs  .svn文件夹删除 2.连接tfs,签入代码

  8. 63、具有过渡动画效果的布局Layout

    下面,下来看一个Demo的效果,代码如下: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  9. windows安装oracle11g

    windows上安装oracle11g   1.下载Oracle 11g R2 for Windows的版本 下载地址:https://www.oracle.com/technetwork/datab ...

  10. 【BZOJ2927】[Poi1999]多边形之战 博弈

    [BZOJ2927][Poi1999]多边形之战 Description 多边形之战是一个双人游戏.游戏在一个有n个顶点的凸多边形上进行,这个凸多边形的n-3条对角线将多边形分成n-2个三角形,这n- ...