slf4j+logback - logback.xml配置文件解析

前言

以前写代码,不注重书写log日志,都是通过system.out.println来当做日志使用。后来看了别人的代码,才知道日志的重要性。一般来说,在调用其他地方接口之前一定要打印日志,将传参打印一下,便于排查问题。
即使我们不配置logback.xml,其实控制台依然会输出日志(有默认的输出方案)。我们可以通过logback.xml做一些个性化的日志输出,也可以定义一些输出到文件的日志输出方式等等。
写这个博客,主要是方便以后需要用到logback能一下找到。在此之前,搜到很多一模一样的关于logback的博客,但是可能不太符合我的要求,所以我整理多家的博客荟聚成一个xml配置文件(相对来说,还算完整)。
本文及配置文件有些粗糙,读者见谅,欢迎给出建议。由于参考多个博客(内容几乎一样),遂不贴原文。

logback.xml详细配置及标签解释(内附打印SQL的第三种方式)

这个配置文件,主要起标签解释用,里面顺带提了三种打印SQL的方式(三种情况),其中示例的是配置文件中所说的第三种方式(一般不使用第一种),详情请见配置文件。根据这个配置文件,读者可以自己配出一种自己需要的打印需求。
注意:不要在yml或是properties去做日志的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!--
    configuration:
    scan:默认为true,当配置文件发生改变时,将被重新加载
    scanPeriod:scan为true时生效,检测配置文件是否有修改的时间间隔,如果没给单位,默认毫秒。默认时间间隔1min
    debug:默认为false,当为true时,会打印logback内部日志信息,实时查看logback运行状态
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter过滤只记录本级别的日志 -->


    <!--*****************************************************************************-->
    <!--自定义项 start-->
    <!--*****************************************************************************-->

    <!-- 定义日志文件的输出位置 -->
    <property name="log.homeDir" value="E:/LogFiles/LogbackDemo"/>
    <!-- 定义项目名,作为日志输出位置的一项 -->
    <property name="log.proName" value="logbackDemo"/>
    <!-- 日志文件最大保留天数 -->
    <property name="log.maxHistory" value="30"/>
    <!-- 日志文件最大存储空间 -->
    <property name="log.maxSize" value="3kb"/>
    <!-- 打印mybatis的sql语句 需要指定dao层包的位置 -->
    <property name="mapper.package" value="pers.liuchengyin.mapper" />

    <!--
         定义日志打印格式 - 彩色日志 - 用于控制台高亮
         magenta:洋红  boldMagenta:粗红  cyan:青色  white:白色  magenta:洋红  highlight:高亮
         使用颜色需要用 %颜色名(内容),如下所示
         分别是:日期 | 日志等级 | 线程 | 代码文件及行数 | 所在包 | 日志信息
     -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%thread) |%blue(%file:%line) |%green(%logger) |%cyan(%msg%n)"/>
    <!-- 输出到文件的日志格式 -->
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %-5level %logger{50} - %msg%n"/>
    <!--*****************************************************************************-->
    <!--自定义项 end-->
    <!--*****************************************************************************-->

    <!--
        appender:
        负责写日志的组件
        name:指定appender的名字
        class:指定appender的全限定名
            ch.qos.logback.core.ConsoleAppender               - 控制台输出
            ch.qos.logback.core.FileAppender                  - 输出到文件(一般不用这个输出日志文件)
            ch.qos.logback.core.rolling.RollingFileAppender   - 滚动输出到文件(一般采用这个输出日志文件)
    -->
    <!-- ConsoleAppender 控制台输出日志 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder:负责将日志信息转换成字节数组,然后把字节数组写入到输出流 -->
        <encoder>
            <!-- pattern:设置日志输出格式 -->
            <pattern>
                ${CONSOLE_LOG_PATTERN}
            </pattern>
        </encoder>
        <!--
            过滤器,返回一个枚举值
                 DENY:日志将立即被抛弃不再经过其他过滤器
                 NEUTRAL:有序列表里的下一个过滤器接着处理日志
                 ACCEPT:日志将被立即处理不再经过其他过滤器
            LevelFilter - 级别过滤器,根据日志级别进行过滤,根据onMatch和onMismatch接收或拒绝日志(需要onMatch和onMismatch)
            ThresholdFilter - 临界值过滤器,当日志级别大于等于临界值时,过滤器返回NEUTRAL。当日志级别小于临界值时,日志被拒绝(仅level即可)
            .....其他过滤器,见官网及百度
         -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- 后面即使logger、root里设置了低于INFO的级别,低于INFO级别的日志仍然会被这个过滤器过滤掉 -->
            <level>INFO</level>
        </filter>
    </appender>

    <!-- WARN级别日志 appender -->
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时&#
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值