Java - SpringBoot之logback设置日期分割并设置指定时间自动清除,Linux启动运行

一、SpringBoot之logback-spring.xml配置

在Spring Boot中,要设置日志按照日期进行分割输出,并设置日志文件的大小自动清除,可以使用logback日志框架的配置

1、创建文件

在项目的resources目录下,创建logback-spring.xml文件

2、基本格式

logback-spring.xml文件的最外层标签为<configuration/>

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
....
<conversionRule />
<property />
<appender />
.......
</configuration>

3、引入色彩依赖

XML 复制代码
<!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>

4、设置属性参数

XML 复制代码
<!-- 项目配置文件 -->
    <property resource="application.yml"/>
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs"/>
    <!-- 日志输出格式 -->
    <property name="log.pattern"
              value="%clr(%d{${yyyy-MM-dd HH:mm:ss.SSS}}){faint} {magenta} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%20.20t]){faint} %clr(%-40.40logger{39}){cyan} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <property name="file.log.pattern"
              value="%d{${yyyy-MM-dd HH:mm:ss.SSS}}  ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

5、控制台输出appender

XML 复制代码
<!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

6、Info类型日志文件储存

通过RollingFileAppender实现,输出到硬盘的文件进行动态滚动,通过LevelFilter过虑其他类型的日志,保证INFO级别日志才能写道文件中;

XML 复制代码
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/info/%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <!-- 每个文件最大值 -->
            <maxFileSize>10MB</maxFileSize>
            <!-- 最多保存30天的日志 -->
            <maxHistory>15</maxHistory>
            <!-- 最大限制 -->
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

7、error类型日志文件储存

通过RollingFileAppender实现,输出到硬盘的文件进行动态滚动,通过LevelFilter过虑其他类型的日志,保证ERROR级别日志才能写道文件中;

XML 复制代码
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/error/%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <!-- 每个文件最大值 -->
            <maxFileSize>10MB</maxFileSize>
            <!-- 最多保存30天的日志 -->
            <maxHistory>15</maxHistory>
            <!-- 最大限制 -->
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

8、全局日志文件储存

可以为error、info级别的日志单独配置不同的文件进行储存,但是在查看实时日志时不直观,因为不能同时查看error、info、debug等级别的日志,为了解决这个问题,引入一个全局日志文件来记录所有级别的日志,并且不做任何的储存,用于排查问题时,进行实时的显示。文件只会有一个,并且大小不超过5MB,记录的是最新的日志信息。

XML 复制代码
<appender name="file_application" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${log.path}/application/application.%i.log</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>1</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

9、配置logger

XML 复制代码
<!-- 整个模块日志级别控制,根据实际包路径进行配置  -->
    <logger name="com.org.sys" level="debug"/>

    <root level="info">
        <appender-ref ref="console"/>
    </root>

    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_application"/>
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
    </root>

10、完整配置文件

将此配置文件放置在**src/main/resources目录下,并确保它命名为logback-spring.xml**,Spring Boot会自动加载它。这样就设置了日志文件的大小限制,当单个文件达到指定大小时,会自动滚动,并且旧的日志文件会被自动清理

XML 复制代码
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>


    <property resource="application.yml"/>
    <!-- 日志存放路径 -->
    <property name="log.path" value="/path/to/your/logs"/>
    <!-- 日志输出格式 -->
    <property name="log.pattern"
              value="%clr(%d{${yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr([%X{mdcTraceId},%X{mdcTraceNum}]){magenta} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%20.20t]){faint} %clr(%-40.40logger{39}){cyan} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
    <property name="file.log.pattern"
              value="%d{${yyyy-MM-dd HH:mm:ss.SSS}} [%X{mdcTraceId},%X{mdcTraceNum}] ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

    <!--    <springProperty scope="context" name="logFileName" source="spring.application.name" defaultValue="currentLog"/>-->
    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 全局日志输出 -->
    <appender name="file_application" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${log.path}/application/application.%i.log</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>1</maxIndex>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 系统日志输出 -->
    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/info/%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <!-- 每个文件最大值 -->
            <maxFileSize>10MB</maxFileSize>
            <!-- 最多保存30天的日志 -->
            <maxHistory>15</maxHistory>
            <!-- 最大限制 -->
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 错误日志输出 -->
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/error/%d{yyyy-MM-dd}-%i.log</fileNamePattern>
            <!-- 每个文件最大值 -->
            <maxFileSize>10MB</maxFileSize>
            <!-- 最多保存30天的日志 -->
            <maxHistory>15</maxHistory>
            <!-- 最大限制 -->
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${file.log.pattern}</pattern>
            <!-- 记录日志的编码:此处设置字符集 - -->
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 系统模块日志级别控制  -->
    <logger name="com.org.sys" level="debug"/>
    <!-- Spring日志级别控制  -->
    <logger name="org.springframework" level="warn"/>
    <logger name="com.zaxxer.hikari" level="warn"/>
    <logger name="io.lettuce.core" level="warn"/>
    <logger name="io.seata.core" level="warn"/>
    <logger name="com.netflix.loadbalancer" level="warn"/>

    <root level="info">
        <appender-ref ref="console"/>
    </root>

    <!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_application"/>
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_error"/>
    </root>
</configuration>
  • **<maxFileSize>**设置单个日志文件的最大大小。

  • <maxHistory> 设置日志文件保留的最大天数或者总文件数。

  • <fileNamePattern> 定义了日志文件的命名模式。

  • **<cleanHistoryOnStart>**在应用启动时清除旧的日志文件

  • %i 占位符:表示文件序号,当文件大小超过指定的 maxFileSize 时,会生成新的文件并增加序号。在 FileNamePattern 中添加 %i 占位符,以便 Logback 可以正确地生成滚动日志文件。

二、Linux部署SpringBoot项目

当我们的电脑装好JAVA开发环境后,即JDK(不管是Linux系统下还是Windows下安装了JDK),那么我们可以将项目打包成JAR包,并可以对JAR包进行运行,可以查看实时的日志信息,可以保存日志文件。下面针对多种情况,描述如何在JDK环境下,使用JAVA命令运行JAR包及运行日志输出。

如:将JAVA项目打包成的JAR包名称为Demo.jar,

1、运行方式1:直接运行

java -jar Demo.jar

按下ctrl+C ,会关闭当前ssh或者直接关闭窗口,当前程序都会退出

2、运行方式2:程序可以在后台执行

bash 复制代码
java -jar Demo.jar &

在命令的结尾添加 "&" ,&表示该程序可以在后台执行,但是在当窗口关闭时,程序也会中止运行。

注:方式1、2都实用与Windows和Linux系统下

3、运行方式3:Linux系统下的后台运行并输出日志文件

bash 复制代码
nohup java -jar Demo.jar &

命令最前面个nohup关键字,这样程序就会不挂断运行命令, 当ssh终端关闭时,程序仍然在运行,当前程序的日志会被写入到当前目录的nohup.out文件中

4、运行方式4:Linux系统下的后台运行并输出指定日志文件

bash 复制代码
nohup java -jar Demo.jar > log.out &

当前程序的日志会被写入到当前目录的log.out文件中,你也可以改目录在log.out文件名中加上路径。

以上是我们常用的使用JAVA命名运行JAR包及日志输出,以下做额外情况的补充:

5、额外补充:以下还有一些其他情况下的命令,自行根据需求选择

如果不想写日志,可以将日志重定向到 /dev/null 中,/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失

bash 复制代码
nohup java -jar Demo.jar > /dev/null &

标准输出就会不再存在,没有任何地方能够找到输出的内容

bash 复制代码
nohup java -jar Demo.jar >/dev/null 2>log.error &

只输出错误信息到日志文件,标准输出不写入日志文件,直接丢弃

bash 复制代码
nohup java -jar Demo.jar >/dev/null 2>&1 &

标准输出(stdout)重定向到/dev/null中(丢弃标准输出),然后标准错误输出(stderror)由于重用了标准输出的描述符,所以标准错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了

bash 复制代码
nohup java -jar Demo.jar >log.out 2>&1 &

标准输出重定向到log.out中,然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了log.out中

但是不管那种情况,如果日志输出,日志文件都会增加很快,造成单个文件很大。所以需要拆分文件

(1)定时作业,每天将日志文件复制一份,然后将当前的日志文件清空。

(2)借助 cronolog来分隔日志

bash 复制代码
nohup java -jar Demo.jar | /usr/local/cronolog/sbin/cronolog logs/console-%Y-%m-%d.out &

这样每天会产生一个console开头的日志文件

三、示例

1、SpringBoot之logback.xml日志配置文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志存放路径 -->
	<property name="log.path" value="/path/to/your/logs" />
    <!-- 日志输出格式 -->
	<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

	<!-- 控制台输出 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
	</appender>
	
	<!-- 系统日志输出 -->
	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件的命名模式
             在 FileNamePattern 中添加 %i 占位符,以便 Logback 可以正确地生成滚动日志文件
             %i 占位符:表示文件序号,当文件大小超过指定的 maxFileSize 时,会生成新的文件并增加序号
             -->
			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>
	
	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-error.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件的命名模式
             在 FileNamePattern 中添加 %i 占位符,以便 Logback 可以正确地生成滚动日志文件
             %i 占位符:表示文件序号,当文件大小超过指定的 maxFileSize 时,会生成新的文件并增加序号
             -->
            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
			<!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
			<!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
	
	<!-- 用户访问日志输出  -->
    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.path}/sys-user.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
    </appender>
	
	<!-- 系统模块日志级别控制 设置捕获指定包下的日志信息 -->
	<logger name="com.xmmc" level="info" />
	<!-- Spring日志级别控制  -->
	<logger name="org.springframework" level="warn" />

	<root level="info">
		<appender-ref ref="console" />
	</root>
	
	<!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
	
	<!--系统用户操作日志-->
    <logger name="sys-user" level="info">
        <appender-ref ref="sys-user"/>
    </logger>
</configuration> 

2、Linux部署脚本

bash 复制代码
#!/bin/bash
 
# 定义Spring Boot项目的jar文件名
JAR_FILE=your-spring-boot-project.jar
 
# 定义日志文件夹路径
LOG_DIR=/path/to/your/logs
 
# 确保日志文件夹存在
mkdir -p $LOG_DIR
 
# 使用nohup启动Spring Boot项目,并指定日志文件
nohup java -jar $JAR_FILE > "${LOG_DIR}/spring-boot.log" 2>&1 &
 
echo "Spring Boot is running in the background with PID: $!"

通过如下命令启动jar

bash 复制代码
nohup java -jar demo.jar> spring-boot.log 2>&1 &

启动以后会在/home/xmmc/logs下面按照日期输出日志,并超过60天的自动清除

启动以后会在jar旁边生成一个spring-boot.log日志文件,会累计输出所有的日志信息,这里可以通过

bash 复制代码
rm -rf spring-boot.log

删除日志即可,因为日志已经记录到对应的日志文件里面了,这里删除以后也不会生成对应的日志文件

如下可生成如下日志文件

遇到问题&FAQ

可能会遇到如下报错:

java 复制代码
Logging system failed to initialize using configuration from 'null' java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@18ca3c62 - Missing integer token, that is %i, in FileNamePattern [logs/sys-info.%d{yyyy-MM-dd}.log]

问题分析

根据错误信息,Logback 配置文件中存在配置错误,具体错误为:

错误信息:Missing integer token, that is %i, in FileNamePattern [logs/sys-info.%d{yyyy-MM-dd}.log]

原因:在 FileNamePattern 中缺少了 %i 占位符,导致 Logback 无法正确解析滚动日志文件名。

解决方案

修改 FileNamePattern 配置: 在 FileNamePattern 中添加 %i 占位符,以便 Logback 可以正确地生成滚动日志文件。

示例配置:

java 复制代码
  <configuration>
       <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
           <file>logs/mis-info.log</file>
           <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
               <!-- 每天生成一个新的日志文件,并且当文件大小超过10MB时进行滚动 -->
               <fileNamePattern>logs/sys-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
               <maxFileSize>10MB</maxFileSize>
               <maxHistory>30</maxHistory>
               <totalSizeCap>1GB</totalSizeCap>
           </rollingPolicy>
           <encoder>
               <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
           </encoder>
       </appender>

       <root level="info">
           <appender-ref ref="FILE" />
       </root>
   </configuration>

说明

%i 占位符:表示文件序号,当文件大小超过指定的 maxFileSize 时,会生成新的文件并增加序号。

<maxFileSize>:设置单个日志文件的最大大小。

<maxHistory>:设置保留的日志文件的最大天数。

<totalSizeCap>:设置所有日志文件的总大小上限。

通过以上配置,可以确保 Logback 正确地生成和管理滚动日志文件

可参考

spring boot如何实现日志文件到期自动删除的 springboot日志保存_mob6454cc769a22的技术博客_51CTO博客

SpringBoot之logback 在Linux系统上启动的时候,设置日志按日期分割并设置指定时间自动清除日志_springboot日志记录定时清理-CSDN博客

相关推荐
是老余9 天前
Logback 日志介绍及与Spring Boot 的整合 【保姆级教程】
spring boot·后端·logback
蓝染-惣右介11 天前
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
单元测试·log4j·logback
( •̀∀•́ )92019 天前
使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
xml·spring·logback
一路奔跑131424 天前
logback日志脱敏后异步写入文件
logback·异步·日志脱敏
white camel25 天前
Java从入门到架构师_日志框架系列
java·logback·log4j2·日志·slf4j
wyh1061151 个月前
01 springboot-整合日志(logback-config.xml)
xml·spring boot·logback
小萌新上大分1 个月前
logback日志导入使用
java·开发语言·logback·日志·javaee·log·logback在测试中使用
hgSuper1 个月前
【Java】java | logback日志配置 | 按包配置级别
java·logback
M00SE1 个月前
log4j 和 logback 冲突解决
java·log4j·logback