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博客

相关推荐
躲在没风的地方8 天前
logback日志控制服务器日志输出
java·服务器·logback
ta叫我小白13 天前
Spring Boot 设置滚动日志logback
java·spring boot·spring·logback
代码的余温15 天前
Spring Boot集成Logback日志全攻略
xml·spring boot·logback
代码的余温16 天前
Logback.xml配置详解与实战指南
xml·logback
清风920016 天前
Logback——日志技术(基础)
java·前端·logback
代码的余温16 天前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
秋千码途18 天前
小架构step系列08:logback.xml的配置
xml·java·logback
枣伊吕波21 天前
第十五节:第六部分:日志技术:logback的核心配置文件详解、日志级别
logback
再见晴天*_*23 天前
logback 日志不打印
java·服务器·logback
hi星尘1 个月前
Spring Boot + Logback MDC 深度解析:实现全链路日志追踪
spring boot·后端·logback