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文档笔记--Logback的Appender配置

Logback将执行日志事件输出的组件称为Appender,实现的Appender必须继承 ch.qos.logback.core.Appender 接口 接口如下: package ch.q...
  • Doraemon_wu
  • Doraemon_wu
  • 2016年07月20日 21:42
  • 8858

logback配置日志输出

log4j log4j 1.2.17 ch.qos.logback logback-core 1.1.3 ch.qos.logback l...
  • u012572955
  • u012572955
  • 2016年08月25日 11:49
  • 11022

使用logback

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

Logback使用小结

1 一定要使用slf4j的jar包,不要使用apache commons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~ import org.slf4j.Logger; import o...
  • zmx729618
  • zmx729618
  • 2016年08月04日 17:03
  • 3451

logback.xml文件配置

logback.xml文件配置 System.out UTF-8 INFO ...
  • zhengyong15984285623
  • zhengyong15984285623
  • 2016年04月26日 20:42
  • 1911

logback 学习笔记

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

Logback学习笔记

Logback介绍 Logback 分为三个模块:Core、Classic 和 Access。Core模块是其他两个模块的基础。 Classic模块扩展了core模块。 Classic模块相当于...
  • ccecwg
  • ccecwg
  • 2014年12月22日 11:36
  • 473

Logback 将日志分级别打印

感谢有奉献精神的人 转自:http://www.cnblogs.com/dragonflyyi/p/4245250.html 最近项目中用到了logback 记...
  • zhangliao613
  • zhangliao613
  • 2016年11月02日 13:42
  • 6464

SLF4J 和 Logback 在 Maven 项目中的使用方法

本文介绍 SLF4J 和 Logback 在 Maven 项目中的用法,包括日志框架的依赖、使用,以及 XML 配置文件的引入。本文的精华内容翻译 Base22,文章来源见文末。...
  • llmmll08
  • llmmll08
  • 2017年04月17日 22:47
  • 4992

勿在 LogBack 的配置中使用相对路径

请看下面这段配置,这是无法工作的: JTheque logs/jtheque.log logs/jth...
  • z69183787
  • z69183787
  • 2014年06月12日 19:33
  • 24416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:logback学习笔记
举报原因:
原因补充:

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