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%npattern>
        encoder>
    appender>

    
    <appender name="Rolling" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/all.logfile>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/all-%d{yyyyMMdd}.logfileNamePattern>
            <maxHistory>30maxHistory>
        rollingPolicy>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class.%method - %msg%npattern>
        encoder>
    appender>

    
    <appender name="sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/sql.logfile>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/sql-%d{yyyyMMdd}.logfileNamePattern>
            <maxHistory>30maxHistory>
        rollingPolicy>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class.%method - %msg%npattern>
        encoder>
    appender>

    
    <root level="DEBUG">
       <appender-ref ref="Rolling"/>
    root>

    
     <logger name="com.alibaba.dubbo.demo.provider" level="DEBUG" />

    
    <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

你可能感兴趣的