重生之 SpringBoot3 入门保姆级学习(11、日志的进阶使用)
-
-
- [3.2.4 文件输出](#3.2.4 文件输出)
- [3.2.5 日志文档的归档与切割](#3.2.5 日志文档的归档与切割)
-
3.2.4 文件输出
- 配置 application.properties
yml
# 日志文件名 如果不写路径默认就是在项目根路径建立 demo.log 文件 推荐写法 D:\\demo.log 路径 + 文件名
logging.file.name=demo.log
# 日志文件路径 一般不用 他只会在指定路径生成 spring.log 的文件 logging.file.name 设置文件名无效
#logging.file.path=D:\\
- 重新运行项目 并在浏览器发送请求 多刷新几遍
3.2.5 日志文档的归档与切割
归档:每天的日志文件单独存放在一个文件中。
切割:每个文件限定 10 MB 超过大小切割成另外一个文件。
- 日志配置表
配置项 | 默认值 | 描述 |
---|---|---|
logging.logback.rollingpolicy.file-name-pattern | ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz | 日志文档的文件名格式 |
logging.logback.rollingpolicy.clean-history-on-start | false | 应用启动时是否清除以前的文档 |
logging.logback.rollingpolicy.max-file-size | 10MB | 存档前每个日志文件的最大大小 |
logging.logback.rollingpolicy.total-size-cap | 0B | 日志文件被删除之前,可以容纳最大大小。设置1GB则磁盘存储超过1GB日志后就会删除旧日志文件 |
logging.logback.rollingpolicy.max-history | 7 | 日志文件的最大保存天数 |
注意:如果是其他日志系统,需要自行配置。(添加 log4j2.xml 或 log4j2-spring.xml 文件名固定,否则无法识别配置)
- 添加 application.properties 配置
yml
# 日志文档的文件名格式
logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
# 存档前每个日志文件的最大大小
logging.logback.rollingpolicy.max-file-size=1MB
# 应用启动时是否清除以前的文档
#logging.logback.rollingpolicy.clean-history-on-start=
# 日志文件被删除之前,可以容纳最大大小。设置1GB则磁盘存储超过1GB日志后就会删除旧日志文件
#logging.logback.rollingpolicy.total-size-cap=
# 日志文件的最大保存天数
#logging.logback.rollingpolicy.max-history=
- 修改 HelloController 使其日志输出快速到 1MB
java
package com.zhong.logging.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName : HelloController
* @Description :
* @Author : zhx
* @Date: 2024-05-30 12:31
*/
@Slf4j
@RestController
public class HelloController {
@GetMapping("/h")
public String Hello(String a, String b) {
for (int i = 0; i < 1000; i++) {
log.info("哈哈哈,方法进来了1。参数: {} {}", a, b);
log.info("哈哈哈,方法进来了2。参数: {} {}", a, b);
log.info("哈哈哈,方法进来了3。参数: {} {}", a, b);
log.info("哈哈哈,方法进来了4。参数: {} {}", a, b);
}
return "hello";
}
}
- 运行后刷新浏览器 50 次左右,想少刷新可以调 for 循环次数