鹰郡少年爱白妞妞 發表於 2026-1-10 14:52:41

springboot配置log日志按天按类缓存实现过程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>1、配置application.yml文件</li><li>2、在application.yml同级目录下</li><li>3、运行结果图</li><li>总结</li></ul></div><p class="maodian"></p><h2>1、配置application.yml文件</h2>
<div class="jb51code"><pre class="brush:yaml;">logging:
level:
    #配置日志打印级别
    root: info
    org:
      mybatis: debug
    cn.mdsoftware.guangtie.dao: debug
</pre></div>
<p class="maodian"></p><h2>2、在application.yml同级目录下</h2>
<p><strong>新建logback-spring.xml文件</strong></p>
<ul><li>配置如下:</li></ul>
<div class="jb51code"><pre class="brush:xml;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;configuration&gt;
    &lt;include resource="org/springframework/boot/logging/logback/defaults.xml"/&gt;
    &lt;jmxConfigurator/&gt;

    &lt;springProperty scope="context" name="springAppName" source="spring.application.name"/&gt;

    &lt;!--保存日志的文件目录位置--&gt;
    &lt;property name="LOG_PATH" value="log"/&gt;

    &lt;!--打印到日志文件的日期格式--&gt;
    &lt;property name="FILE_LOG_PATTERN"
            value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:-} --- [%15.15t] %-40.40logger{39} : %m%n"
    /&gt;
    &lt;!--打印到控制台的日期格式--&gt;
    &lt;property name="CONSOLE_LOG_PATTERN"
            value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) {faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"
    /&gt;

    &lt;appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
      &lt;rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"&gt;
            &lt;!--日志文件输出的文件名--&gt;
            &lt;fileNamePattern&gt;${LOG_PATH:-}/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.%i.log&lt;/fileNamePattern&gt;
            &lt;!-- 每个日志文件的大小 --&gt;
            &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
            &lt;!-- 保留多少天的日志 --&gt;
            &lt;MaxHistory&gt;30&lt;/MaxHistory&gt;
            &lt;!--每天最大日志量 超过这个量日志文件就会诶被回滚覆盖--&gt;
            &lt;maxFileSize&gt;2GB&lt;/maxFileSize&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder&gt;
            &lt;pattern&gt;${FILE_LOG_PATTERN}&lt;/pattern&gt;
            &lt;charset&gt;utf8&lt;/charset&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;!--错误日志的位置--&gt;
    &lt;appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
      &lt;param name="append" value="true"/&gt;
      &lt;param name="threshold" value="WARN"/&gt;
      &lt;rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"&gt;
            &lt;fileNamePattern&gt;
                ${LOG_PATH:-}/%d{yyyy-MM-dd}/error/%d{yyyy-MM-dd}-error.%i.log
            &lt;/fileNamePattern&gt;
            &lt;!-- 每个日志文件的大小 --&gt;
            &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
            &lt;!-- 保留多少天的日志 --&gt;
            &lt;MaxHistory&gt;30&lt;/MaxHistory&gt;
            &lt;!--每天最大日志量 超过这个量日志文件就会诶被回滚覆盖--&gt;
            &lt;maxFileSize&gt;2GB&lt;/maxFileSize&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder&gt;
            &lt;pattern&gt;${FILE_LOG_PATTERN}&lt;/pattern&gt;
            &lt;charset&gt;utf8&lt;/charset&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;


    &lt;appender name="THIRD-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
      &lt;rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"&gt;
            &lt;fileNamePattern&gt;
                ${LOG_PATH:-}/%d{yyyy-MM-dd}/third/%d{yyyy-MM-dd}-third.%i.log
            &lt;/fileNamePattern&gt;
            &lt;!-- 每个日志文件的大小 --&gt;
            &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
            &lt;!-- 保留多少天的日志 --&gt;
            &lt;MaxHistory&gt;30&lt;/MaxHistory&gt;
            &lt;!--每天最大日志量 超过这个量日志文件就会诶被回滚覆盖--&gt;
            &lt;maxFileSize&gt;2GB&lt;/maxFileSize&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder&gt;
            &lt;pattern&gt;${FILE_LOG_PATTERN}&lt;/pattern&gt;
            &lt;charset&gt;utf8&lt;/charset&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;!--remote的日志--&gt;
    &lt;appender name="REMOTE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
      &lt;rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"&gt;
            &lt;fileNamePattern&gt;
                ${LOG_PATH:-}/%d{yyyy-MM-dd}/remote/%d{yyyy-MM-dd}-remote.%i.log
            &lt;/fileNamePattern&gt;
            &lt;!-- 每个日志文件的大小 --&gt;
            &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
            &lt;!-- 保留多少天的日志 --&gt;
            &lt;MaxHistory&gt;30&lt;/MaxHistory&gt;
            &lt;!--每天最大日志量 超过这个量日志文件就会诶被回滚覆盖--&gt;
            &lt;maxFileSize&gt;2GB&lt;/maxFileSize&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder&gt;
            &lt;pattern&gt;${FILE_LOG_PATTERN}&lt;/pattern&gt;
            &lt;charset&gt;utf8&lt;/charset&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;!--流程的日志--&gt;
    &lt;appender name="PROCESS-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
      &lt;rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"&gt;
            &lt;fileNamePattern&gt;
                ${LOG_PATH:-}/%d{yyyy-MM-dd}/process/%d{yyyy-MM-dd}-process.%i.log
            &lt;/fileNamePattern&gt;
            &lt;!-- 每个日志文件的大小 --&gt;
            &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
            &lt;!-- 保留多少天的日志 --&gt;
            &lt;MaxHistory&gt;30&lt;/MaxHistory&gt;
            &lt;!--每天最大日志量 超过这个量日志文件就会诶被回滚覆盖--&gt;
            &lt;maxFileSize&gt;2GB&lt;/maxFileSize&gt;
      &lt;/rollingPolicy&gt;
      &lt;encoder&gt;
            &lt;pattern&gt;${FILE_LOG_PATTERN}&lt;/pattern&gt;
            &lt;charset&gt;utf8&lt;/charset&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;!--控制台打印的日志配置--&gt;
    &lt;appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"&gt;
      &lt;encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"&gt;
            &lt;pattern&gt;${CONSOLE_LOG_PATTERN}&lt;/pattern&gt;
      &lt;/encoder&gt;
    &lt;/appender&gt;

    &lt;!--三方 --&gt;
    &lt;logger name="THIRD" additivity="false"&gt;
      &lt;level value="${log_level}"/&gt;
      &lt;appender-ref ref="THIRD-APPENDER"/&gt;
      &lt;appender-ref ref="ERROR-APPENDER"/&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
    &lt;/logger&gt;

    &lt;!-- 远程 --&gt;
    &lt;logger name="REMOTE" additivity="false"&gt;
      &lt;level value="${log_level}"/&gt;
      &lt;appender-ref ref="REMOTE-APPENDER"/&gt;
      &lt;appender-ref ref="ERROR-APPENDER"/&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
    &lt;/logger&gt;

    &lt;!-- 流程 --&gt;
    &lt;logger name="PROCESS" additivity="false"&gt;
      &lt;level value="${log_level}"/&gt;
      &lt;appender-ref ref="PROCESS-APPENDER"/&gt;
      &lt;appender-ref ref="ERROR-APPENDER"/&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
    &lt;/logger&gt;

    &lt;!-- 错误 --&gt;
    &lt;logger name="ERROR" additivity="false"&gt;
      &lt;level value="WARN"/&gt;
      &lt;appender-ref ref="ERROR-APPENDER"/&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
    &lt;/logger&gt;


    &lt;logger name="druid.sql.Statement" level="INFO" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/logger&gt;
    &lt;logger name="java.sql.PreparedStatement" level="DEBUG" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/logger&gt;
    &lt;logger name="com.zjrc" level="DEBUG" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/logger&gt;
    &lt;logger name="org.springframework" level="INFO" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/logger&gt;
    &lt;logger name="org.springframework.cloud.sleuth.instrument.web.client.feign" level="INFO" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/logger&gt;
    &lt;root level="INFO" additivity="false"&gt;
      &lt;appender-ref ref="CONSOLE"/&gt;
      &lt;appender-ref ref="FILE"/&gt;
    &lt;/root&gt;


&lt;/configuration&gt;
</pre></div>
<p class="maodian"></p><h2>3、运行结果图</h2>
<ul><li>如下所示:</li></ul>
<p style="text-align:center"><br /><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011014530979.png" /></p>
<p class="maodian"></p><h2>总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>在Springboot中处理log4j2日志文件过程</li><li>Springboot+Mybatis+logback打印sql脚本日志实现过程</li><li>SpringBoot&nbsp;LogbackvsLog4j2配置与性能测试对比分析</li><li>springboot中配置logback-spring.xml的方法</li><li>使用Logback在SpringBoot项目中实现日志记录功能</li><li>SpringBoot项目使用Log4j2+SLF4J构建日志的方法步骤</li><li>springboot+logback的多环境配置全过程</li><li>SpringBoot默认日志logback输出格式配置</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: springboot配置log日志按天按类缓存实现过程