logback之sql单纯输出到一个日志,所有日志输入到一个日志

logback是我们公司现在用的一个日志技术,是log4j的升级版。就我的学习,他配置起来非常简单,只需要添加maven依赖,一个logback配置文件即可使用。
话不多说,先上demo

<configuration scan="true" scanPeriod="60 seconds">

    <!-- 输出日志信息到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date [%thread] %-5level %logger - %X{rule} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 输出日志信息到文件 -->
    <appender name="Rolling" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/all.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/all-%d{yyyyMMdd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class.%method - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 输出日志信息到文件  -->
    <appender name="sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/sql.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/sql-%d{yyyyMMdd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class.%method - %msg%n</pattern>
        </encoder>
    </appender>

    <!--根logger,只接受下级debug以上日志信息  -->
    <root level="DEBUG">
       <appender-ref ref="Rolling"/>
    </root>

    <!--输出所有日志到文件  -->
     <logger name="com.alibaba.dubbo.demo.provider" level="DEBUG" />

    <!--打印com.alibaba.dubbo包下日志 (打印sql),此logger虽然没有指定appender,但是他的上级root已经指定了,所有他会把信息交给上级 -->
    <logger name="com.alibaba.dubbo.demo.provider.dao" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="sql"/>
    </logger>

</configuration>

有几个点是需要注意的:
1.root是一个根logger,他可以接受下级的日志信息,但是只能接受他的级别以上的,上面的例子就是只能接受debug级别以上的日志
2.是指定日志输出的地方。appender是输出日志的地方,里面可以配置日志名字和路径。
3. 虽然没有指定输出日志的地方,但是他默认是将日志信息向上传递的,可通过additivity=”false”来控制这个属性。
4. name=”com.alibaba.dubbo.demo.provider.dao”这种方式是可以直接打印sql

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那年的夏天123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值