logback学习笔记

原创 2016年08月29日 18:53:38

日志级别

Trace < Debug < Info < Warn < Error.

Configuration节点


  • 属性
    • scan:若为true,则监听配置文件变化,变化后重新加载
    • scanPeriod:监听变化的周期,单位为毫秒。
  • 子节点
    • logger:用来设置某一个包或者具体的某一个类的日志打印级别以及指定
    • root:一个特殊的logger,当一条日志没有被其他logger捕获或者其他logger捕获后向上传递,那么root可以捕获该日志。
    • appender:指定日志的输出格式,输出位置,进一步过滤日志级别。

logger节点


  • 属性
    • name:包名/类名,eg:com.fishweb。只有日志是在该范围下打印的,才会被logger捕获。
    • level:过滤日志级别,只有>=该级别的日志,才会调用Appender输出。默认继承root.level,为debug。
    • addtivity,是否向上级(root)传递该日志,默认为true。
  • 子节点
    • appender-ref:对捕获后的日志进行处理,可设置多个。

root节点


  • 属性:只有level属性
  • 子节点:appender-ref

appender节点


  • 属性
    • name:唯一id,在appender-ref中被引用。
    • class:指定输出类,也是输出方式,常用ch.qos.logback.core.ConsoleAppender(控制台)与ch.qos.logback.core.rolling.RollingFileAppender(滚动文件)
  • 子节点
    • filter:过滤器,对日志进一步过滤,只有通过所有过滤器的日志,才会真正被处理。
    • encoder:指定输出格式以及对二进制进行转换。

选定为ConsoleAppender时,appender无其他子节点。

选定为RollingFileAppender时,appender的子节点如下:

  • append,是否追加到文件末尾(否则覆盖),默认为true.
  • rollingPolicy,刷新策略,该节点属性如下
    • class:滚动实现类,常用ch.qos.logback.core.rolling.TimeBasedRollingPolicy。
    • FileNamePattern(TimeBasedRollingPolicy):文件名,必须含有%d{format},其中format为日期格式,与simpledateformat同。它指定了最小的时间单位,如%d{yyyy/MM/dd} -> 时间单位为天,每天产生一个文件;%d{yyyy/MM} -> 时间单位为月,每月产生一个文件。
    • maxHistory:最多保存的周期数(天/月/..)

encoder节点


子节点为pattern,指定了输出格式,eg:
[%d{yyyy/MM/dd-HH:mm:ss.SSS}]-[%level]-[%thread]-[%X{requestId}]-[%class:%line]- %msg%n

filter节点


主要使用LevelFilter以及ThresholdFilter,由class属性指定。
* LevelFilter。
* level指定匹配的级别,单个匹配,而不是范围匹配。
* onMatch:符合时操作,可以选择抛弃日志等操作。
* onMisMatch;不符合时操作。
* ThresholdFilter。
* level,只有>=该level的日志被处理。

日志记录过程


日志产生 -> loggers -> [root] -> filters -> appender处理

DEMO

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 输出到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy/MM/dd-HH:mm:ss.SSS}]-[%level]-[%thread]-[%X{requestId}]-[%class:%line]- %msg%n </pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 输出到文件,只处理>=ERROR级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <!-- 每天形成一个文件,最多保留七天 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>./logs/fs-open-hr-admin-%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
            <maxHistory>30</maxHistory>
            <!-- 文件>100M时,触发警告 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy/MM/dd-HH:mm:ss.SSS}-[%level]-[%X{requestId}]-%logger{10}:%line-%msg%n</pattern>
        </encoder>
    </appender>
    <!-- 捕获由com.fishweb包下产生的,且级别>=Debug的日志记录,不向上级传播 --》
    <logger name="com.fishweb" level="DEBUG" additivity="false">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT"/>
    </logger>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>

</configuration>
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

logback配置日志输出

log4j log4j 1.2.17 ch.qos.logback logback-core 1.1.3 ch.qos.logback l...

Logback 配置文件例子

%d %-5level %logger{80} - %msg %n true --> \${user.home}/logs/hk_retail_out.log \${user.home}/lo...

Logback使用小结

1 一定要使用slf4j的jar包,不要使用apache commons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~ import org.slf4j.Logger; import o...

使用logback

1 一定要使用slf4j的jar包,不要使用apache commons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~ import org.slf4j.Logger; import o...
  • arkblue
  • arkblue
  • 2012年07月22日 18:26
  • 11610

Logback常用配置详解

logback是一套日志框架,由log4j的优化版,由同一个作者开发,在速度和性能上都超过其他日志框架,再结合slf4j,已成为当前最流行的日志框架。Logback最常用就是在classpath定义一...

Logback学习笔记1 .

引用:http://blog.csdn.net/milife2012/article/details/7277888   Logback介绍 Logback 分为三个模块:Core、Clas...

Logback学习笔记1

Logback介绍 Logback 分为三个模块:Core、Classic 和 Access。Core模块是其他两个模块的基础。 Classic模块扩展了core模块。 Classic模块相当...

logback 学习笔记

# download url http://www.slf4j.org/download.html http://logback.qos.ch/download.html # 依赖 jar slf4j...
  • dyccsxg
  • dyccsxg
  • 2013年07月16日 19:34
  • 2069

slf4j与LOGBack -- 学习笔记

slf4j和LOGBack是log4j的创建者Ceki Gülcü新创建出来的一个组合,它完全可以替代apache commons logging + log4j组合,并且在性能和架构方面有了不小的改...

非常详细的logback学习笔记

Logback介绍 Logback 分为三个模块:Core、Classic 和 Access。Core模块是其他两个模块的基础。 Classic模块扩展了core模块。 Classic模块相当于lo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:logback学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)