logback.xml生产日志配置样例

本文详细解析了Logback日志框架的配置文件,包括不同级别的日志输出、滚动策略、过滤规则及布局设置,适用于各类应用程序的日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <property name="rootPath" value="${catalina.base}/logs" />

    
    <!-- learn appender -->
    <appender name="learn_debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/learn_debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/learn_debug-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>DEBUG</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg%n
            </pattern>
        </layout>
    </appender>
    
    <appender name="learn_errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/learn_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/learn_error-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>ERROR</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    <appender name="learn_ImgAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/base64_img.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/base64_img-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>INFO</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch>
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
        
    
    <!-- biz appender -->
    <appender name="biz_debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/biz_debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/biz_debug-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>DEBUG</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg%n
            </pattern>
        </layout>
    </appender>
    
    <appender name="biz_errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/biz_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/biz_error-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>ERROR</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    
    <!-- base appender -->
    <appender name="base_debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/base_debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/base_debug-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>DEBUG</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg%n
            </pattern>
        </layout>
    </appender>
    
    <appender name="base_errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/base_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/base_error-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>ERROR</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    
    
    <!-- other appender -->    
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg%n
            </pattern>
        </encoder>
    </appender>
    
    <appender name="sqlAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/sql.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/sql-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    <appender name="dev_debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/dev_debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/dev_debug-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    <!-- 第三方框架 -->
    <appender name="framework_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/framework_lib.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/framework_lib-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg %n
            </pattern>
        </layout>
    </appender>
    
    
   \
    <appender name="payBank_MsgAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <File>${rootPath}/payBank_msg.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${rootPath}/payBank_msg-%d{yyyy-MM-dd}-%i.log.gz
            </FileNamePattern>
            <MaxHistory>31</MaxHistory>
           <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>100MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter"> 
            <level>INFO</level> 
            <onMatch>ACCEPT</onMatch> 
            <onMismatch>DENY</onMismatch> 
        </filter>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%-5p] %logger{36} | %msg%n
            </pattern>
        </layout>
    </appender>
    
    
    <!-- learn loggers -->
    <logger name="com.xxh.learn" additivity="false">
        <level value="ALL" />
        <appender-ref ref="learn_debugAppender"/>        
        <appender-ref ref="learn_errorAppender"/>
      </logger>
      
      <!-- biz loggers -->
      <logger name="com.xxh.biz" additivity="false">
        <level value="ALL" />
        <appender-ref ref="biz_debugAppender"/>
        <appender-ref ref="biz_errorAppender"/>
      </logger>
      
      <!-- base loggers -->
      <logger name="com.xxh.base" additivity="false">
        <level value="ALL" />
        <appender-ref ref="base_debugAppender"/>
        <appender-ref ref="base_errorAppender"/>
      </logger>
            
    <!-- dev loggers -->
    <logger name="com.xxh.dev" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="dev_debugAppender"/>
      </logger>
      
      <!-- 第三方框架 loggers -->
      <logger name="com.mysql" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="sqlAppender"/>
      </logger>
      
      <logger name="org.mybatis" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="framework_appender"/>
      </logger>
    
    <logger name="org.springframework" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="framework_appender"/>
      </logger>
      
      <logger name="org.quartz" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="framework_appender"/>
      </logger>
      
      <logger name="org.apache" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="framework_appender"/>
      </logger>
      
      
      <logger name="MSG.com.xxh.learn" additivity="false">
        <level value="INFO" />
        <appender-ref ref="payBank_MsgAppender"/>
      </logger>
      
      <logger name="IMG.com.xxh.learn" additivity="false">
        <level value="INFO" />
        <appender-ref ref="learn_ImgAppender"/>
      </logger>
        
      <logger name="MSG.com.xxh.biz" additivity="false">
        <level value="INFO" />
        <appender-ref ref="payBank_MsgAppender"/>
      </logger>
    
    
    <root>
        <level value="DEBUG" />
        <appender-ref ref="consoleAppender" />
    </root>
    
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值