logback.xml配置

先来说几个概念:

appender:输出目标地,如控制台,文件等,打印格式等,是打印的具体工作者,但不是打印的开关

encoder:日志格式控制者,在appender节点内。

logger:日志器,打印日志的主体,logger关联appender,是打印的开关,有logger才会打印。

另外,要明白几个前提

1、logger是可以继承的;

2、有一个隐式的root logger存在,所有logger都是他的子logger,你也可以显示的指定,继承的效果是appender的继承,如果logger指定additivity=false,那么无法继承父类的appender,这两个要注意搭配效果,可以复用父类appender也能达到重复打印的效果。

3、additivity默认值为false;

4、logback的logger父子关系由包决定,name为com.wang.test的logger是name为com.wang的子类,配置的时候注意appender的继承和additivity属性对继承的影响。

有了以上几点,你在配置包的打印关系就会得心应手,不会出现重复打印和漏掉打印的情况。其他的格式等细节就不说了,其他地方很多,我这里的几点没人总结。

<configuration>
    <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, -->
    <!-- appender是configuration的子节点,是负责写日志的组件。 -->
    <!-- ConsoleAppender:把日志输出到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)- %m%n</pattern>
            <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->

    <!-- DEBUG级别日志 appender -->
    <appender name="syslog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>pealog/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>60</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{req.remoteHost} %X{req.requestURI} %X{req.queryString}
                %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>


    <!-- 控制台输出日志级别 -->
    <root level="debug" additivity="false">
        <appender-ref ref="STDOUT"/>
    </root>

    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值