zoukankan      html  css  js  c++  java
  • 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}	race-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>
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    Android服务之bindService源代码分析
    [iOS 高级] iOS远程推送与本地推送大致流程
    redis集群
    面试你之前,我希望在简历上看到这些!
    解决安卓出现导入第三方包反复的错误
    【PA2012】【BZOJ4289】Tax
    Spark jdbc postgresql数据库连接和写入操作源代码解读
    Java中hashcode的理解
    CvArr、Mat、CvMat、IplImage、BYTE转换
    CSDN日报20170413 ——《天天写业务代码的那些年,我们是怎样成长过来的》
  • 原文地址:https://www.cnblogs.com/whalesea/p/10953750.html
Copyright © 2011-2022 走看看