时间的法外狂徒

导航

logback日志模板

一、把不同级别的日志输出到不同的文件中,控制台打印某个级别以上的日志(最好不要把root下的日志级别配置为trace,因为会持续打印一些事件信息,不利于调试)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="E:\\logs\\wcs_printer" />
    
    <!-- 控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 1格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!--临界值日志过滤级别配置 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- 1在日志级别的基础上过滤掉trace级别以下的日志 -->
            <level>trace</level> 
        </filter>
    </appender>
    
    <!-- trace级别,按照每天生成日志文件 -->
    <appender name="trace" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--只保留固定配置级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>trace</level> 
            <onMatch>ACCEPT</onMatch>   
            <onMismatch>DENY</onMismatch>   
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\trace-log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    <!-- debug级别,按照每天生成日志文件 -->
    <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
           <!--只保留固定配置级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>debug</level> 
            <onMatch>ACCEPT</onMatch>   
            <onMismatch>DENY</onMismatch>   
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\debug-log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    <!-- info级别,按照每天生成日志文件 -->
    <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
          <!--只保留固定配置级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>info</level> 
            <onMatch>ACCEPT</onMatch>   
            <onMismatch>DENY</onMismatch>   
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\info-log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    <!-- warn级别,按照每天生成日志文件 -->
    <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
           <!--只保留固定配置级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>warn</level> 
            <onMatch>ACCEPT</onMatch>   
            <onMismatch>DENY</onMismatch>   
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\warn-log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    <!-- error级别,按照每天生成日志文件 -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
           <!--只保留固定配置级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>error</level> 
            <onMatch>ACCEPT</onMatch>   
            <onMismatch>DENY</onMismatch>   
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\error-log-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    
    <!-- 日志级别排序为: TRACE < DEBUG < INFO < WARN < ERROR -->
    <!-- 日志输出级别 -->
    <root level="trace">
        <appender-ref ref="stdout" />
        <appender-ref ref="trace" />
        <appender-ref ref="debug" />
        <appender-ref ref="info" />
        <appender-ref ref="warn" />
        <appender-ref ref="error" />
    </root>
</configuration>

二、把某个级别及其上级别的日志打印到一个日志文件中,控制台同样打印某个级别以上的日志信息。

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
    <property name="LOG_HOME" value="E:\\logs\\wcs_printer" />
    
    <!-- 控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
         
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 1格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <!-- <charset>gbk</charset> --><!-- 注释掉编码,跟随平台编码 -->
        </encoder>
        <!--临界值日志过滤级别配置 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- 1在日志级别的基础上过滤掉debug级别以下的日志 -->
            <level>debug</level> 
        </filter>
    </appender>
    
    
    <!-- 按照每天生成info日志文件 -->
    <appender name="infoFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
            <!-- 1在日志级别的基础上过滤掉相应级别以下的日志 -->
            <level>info</level> 
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\info-more-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    
     <!-- 按照每天生成error日志文件 -->
    <appender name="errorFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
            <!-- 1在日志级别的基础上过滤掉相应级别以下的日志 -->
            <level>error</level> 
        </filter> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 之前的  rollingPolicy和triggeringPolicy冲突了  用一个新的标签  结合两者 -->
             <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}\error-more-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
             <!-- 日志文件保留天数 -->
            <MaxHistory>5</MaxHistory>
            <!-- 日志文件最大尺寸 -->
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>
    
    <!-- 日志级别排序为: TRACE < DEBUG < INFO < WARN < ERROR -->
    <!-- 日志输出级别 -->
    <root level="debug">
        <appender-ref ref="stdout" />
        <appender-ref ref="infoFile" />
        <appender-ref ref="errorFile" />
    </root>
</configuration>

 

posted on 2019-05-31 10:15  抄手砚  阅读(1667)  评论(0编辑  收藏  举报