当前位置 : 首页 » 文章分类 :  开发  »  Logback

Logback

Logback Project
http://logback.qos.ch/


logger和appender

logger/appender/root 之间的关系
root 也是一个 logger, 只不过 root 中不能有 name 和 additivity 属性,只有一个 level 属性。
appender 是一个日志打印的组件,这里组件里面定义了打印过滤的条件、打印输出方式、滚动策略、编码方式、打印格式等等。但是它仅仅是一个打印组件,如果我们不使用一个 logger 或者 root 的 appender-ref 指定某个具体的 appender 时,它就没有什么意义。

appender 告诉应用应该怎么打、打印到哪里、打印成什么样;
logger 则是告诉应用哪些可以这么打。例如某个类下的日志可以使用这个 appender 打印或者某个包下的日志可以这么打印。

看完这个不会配置 logback ,请你吃瓜!
https://juejin.im/post/5b51f85c5188251af91a7525


configuration

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

Java日志框架:logback详解
https://www.cnblogs.com/xrq730/p/8628945.html


logger

logger和root

logger 用来设置某一个包或者具体某一个类的日志打印级别。
logger 可以包含零个或者多个 <appender-ref> 元素,表明这个 logger 会输出到这些 appender, 注意如果没有配置 <appender-ref> 则此logger不会有任何输出
logger 仅有一个 name 属性、一个可选的 level 属性和一个可选的 additivity 属性:
name 用来指定受此logger约束的某一个包或者具体的某一个类
level 用来设置打印级别,五个常用打印级别从低至高依次为TRACE、DEBUG、INFO、WARN、ERROR,如果未设置此级别,那么当前logger会继承上级的级别
additivity 是否向上级logger传递打印信息,默认为true

root 也是一个 logger, 只不过 root 中不能有 name 和 additivity 属性,只有一个 level 属性

关闭某个包的日志

屏蔽 ResponseProcessCookies 类的输出

<logger name="org.apache.http.client.protocol.ResponseProcessCookies" level="OFF"/>

appender

filter

Logback 中自带了两个过滤器实现
ch.qos.logback.classic.filter.LevelFilterch.qos.logback.classic.filter.ThresholdFilter

LevelFilter 需要依次定义每个级别是 ACCEPT 还是 DENY, 不如 ThresholdFilter 方便,所以一般都用 ThresholdFilter

<!-- LevelFilter: 级别过滤器,根据日志级别进行过滤 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
   <level>INFO</level>
   <!-- 用于配置符合过滤条件的操作 ACCEPT 日志会被立即处理,不再经过剩余过滤器 -->
   <onMatch>ACCEPT</onMatch>
   <!-- 用于配置不符合过滤条件的操作 DENY 日志将立即被抛弃不再经过其他过滤器 -->
   <onMismatch>DENY</onMismatch>
</filter>

只打印 info 级别以上的

<appender name="STDOUT"
    class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %X{REQUEST_ID} - %msg%n</pattern>
    </encoder>
</appender>

Logback中如何自定义灵活的日志过滤规则
https://www.jianshu.com/p/d6360c517264


上一篇 金融基础

下一篇 LeetCode.312.Burst Balloons 戳气球

阅读
评论
868
阅读预计3分钟
创建日期 2020-07-21
修改日期 2021-06-16
类别
标签

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论