logback xml配置中常用标签使用解析

以下内容为个人理解及使用总结,希望能帮助到你

Logback 配置理解:

Logback使用主要依赖于LoggerAppender  Layout 这三个类之上。

     Logger:记录日志是使用,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型、级别。

Appender:用于指定日志输出的目的地,目的地可以是控制台、文件、数据库等。

Layout:负责把事件转换成字符串,格式化的日志信息的输出。

 

1、关于配置文件使用顺序:

logback 首先在项目根目录查找 logback.groovy,如果没有则使用logback-test.xml,如果没有logback-test.xml,使用 logback.xml 如果以上三个都没有则输出到控制台。(我是用的是logback[-test].xml

2、根节点 configuration

configuration 有三个可选属性:

    ascan属性:用来设置配置文件变动时是否重新加载,值是 true\false ,默认是true配置变动时重新加载

    bscanPeriod属性:用来设置每隔多久检查一次配置是否变动,默认是1分钟,默认单位是毫秒

    cdebug属性:用来设置是否将logback内部的日志打印出来,即启动时输出配置加载信息。值为true\false 默认为false

3property 节点:

       设置要使用的或者共用的变量,property包含两个属性namevalue;其中name的值是变量的名称,value的值是变量所代表的值。<property>定义的值可以使用${变量名}”到logger上下文中。例如:

       

<!--定义log日志输出文件的目录-->
<property name="outFilePath" value="E:/个人/demo/logs/demo.log" />
<!--定义日志输出格式-->
<property name="enPattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<appender name="STDOUT" class="ch.qos.logback.core.FileAppender">
        <file>${outFilePath}</file>
        <append>true</append>
        <encoder charset="UTF-8">
            <pattern>${enPattern}</pattern>
        </encoder>
</appender>

 

上述例子中Property定义的outFilePath、enPatternappender节点中的file节点中使用。这样写方便统一调整日志输出的目录。

4appender节点可以有多个,分别针对不同的包或者类做不同的输出,如果appender输出到文件时,可以设置append子节点值true\false,是末尾追加日志还是替换日志,值为true时表示追加。

可以在appender中使用filter节点(过滤器),在此节点内过滤日志级别(使用level节点指定),过滤后会返回一个枚举值,即DENYNEUTRALACCEPT其中之一:

    A、返回DENY,日志将立即被抛弃不再经过其他过滤器;

    B、返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;

    C、返回ACCEPT,日志会被立即处理,不再经过剩余过滤器

如果需要使用这些值做处理时,需要使用onMatchlevel级别或大于level级别的)onMismatch(级别小于level级别的)

5、logger节点:

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

Name属性:用来指定受此logger约束的某一个包或者具体的某一个类。

Level属性:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR

如果未设置此属性,那么当前logger将会继承上级的级别。

Addtivity属性:用来设置是否向上级logger传递打印信息。默认是true

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

6、root节点:

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

Level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR。默认是DEBUG

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

7pattern节点定义的输出模式解释:

%d{HH:mm:ss.SSS}  当前时间;

[%thread]  [当前线程名称]

%-5level  logger级别

%logger{36} logger名称

-%msg%n  定义的输出

%line   输出日志的行号

%n 换行

%date%d{yyyy-MM-dd HH:mm:ss.SSS}   当前时间包含年月日

{%C.java:%L} 输出日志所在的java类、所在行及路径可以替换[%thread]

 

官方参考:http://logback.qos.ch/manual/index.html

猜你喜欢

转载自lookahead.iteye.com/blog/2330492