您的位置:首页 > 新闻 > 会展 > 国家高新技术企业认定官网_免费网站网络推广_独立站建站平台_百度售后电话人工服务

国家高新技术企业认定官网_免费网站网络推广_独立站建站平台_百度售后电话人工服务

2025/2/25 2:01:54 来源:https://blog.csdn.net/weixin_71894495/article/details/145544388  浏览:    关键词:国家高新技术企业认定官网_免费网站网络推广_独立站建站平台_百度售后电话人工服务
国家高新技术企业认定官网_免费网站网络推广_独立站建站平台_百度售后电话人工服务

1. 日志框架介绍

        日志框架由两个部分组成,一个是日志门面,即日志接口,一个是日志实现。日志门面有JCL、jboss-logging、SLF4j等日志门面接口,而日志实现又有Log4j、JUL、Log4j2、Logback。

        Spring boot默认引入了日志门面和日志实现,所以在maven的pom.xml文件中不需要额外添加日志相关的组件,其默认使用组合为:SLF4j+Logback

        目前日志门面基本只用SLF4j,日志实现有较多的选择性,相比Logback,Log4j2性能更高,更强大,如果作者想更换为更强大的日志实现,替换默认的日志框架(Logback)为 Log4j2。这是通过 Maven 的依赖管理功能来实现的,在pom.xml文件中添加如下代码:

<!--       排除默认日志实现 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency>

2. 日志添加 

在Spring boot中添加日志非常简单,只需要在类上添加注解,并在想要打印日志的地方添加日志即可。

@SpringBootTest
@Slf4j
class Springboot01HelloApplicationTests {@Testvoid contextLoads() {log.trace("trace日志测试");log.debug("debug日志测试");log.info("info日志测试");log.warn("warn日志测试");log.error("error日志测试");}
}

日志内容的格式是:

格式: 时间  级别  进程id --- 项目名 --- 线程名 --- 当前类名: 日志内容

 

 3. 日志打印级别

上诉一共有5种日志打印,其级别从低到高,打印内容从多到少。

级别:由低到高:ALL -- TRACE -- DEBUG -- INFO -- WARN -- ERROR -- OFF
越打印,越粗糙; 日志有一个默认级别(INFO);只会打印这个级别之上的所有信息;

# 日志配置
logging:level:root: info  # 如果哪个包、哪个类不说日志级别,就用默认root的级别,默认infocom:  # 指定用户业务代码包日志级别wulang:pnt: trace

 

同时也可以对业务包进行分组设置,更加精细化和灵活控制各个业务包的日志级别打印:

# 设置日志组
#logging.group.biz=com.atguigu.service,com.atguigu.dao
# 整组批量设置日志级别
#logging.level.biz=debug

5. 日志文件输出

Spring boot默认只把日志写在控制台,如果想额外记录到文件,可以在配置文件中添加logging.file.name或logging.file.path配置项

logging.file.namelgging.file.path示例效果
未指定未指定仅控制台输出
指定未指定my.log写入指定文件,可以加路径
未指定指定/var/log写入指定目录,文件名为:spring.log
指定指定以logging.file.name为准
# 当前项目所在的根文件夹下生成一个 指定名字的 日志文件
logging.file.name=boot.log

6. 文件归档和切割

归档:每天的日志单独存到一个文档中

切割:每个文件指定大小,超过这个大小,切割成另一个文件 

配置项描述
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

# 最大文件大小切割,单位M 默认 10M
logging.logback.rollingpolicy.max-file-size=10MB
# 日志删除
logging.logback.rollingpolicy.total-size-cap=1GB
logging.logback.rollingpolicy.max-history=7

7. 总结 

一般情况下,日志配置文件都是默认的,只要配置了一份,其他项目拿来复用即可,不需要进行特意的设置,相对模版化,作者给出一份完整的配置,作为最佳实践以供使用。

# 日志配置
logging:level:root: info  # 如果哪个包、哪个类不说日志级别,就用默认root的级别,默认infocom:  # 指定用户业务代码包日志级别wulang:pnt: debugfile: #当前项目所在的根文件夹下生成一个 指定名字的 日志文件name: boot.loglogback:rolling policy:clean-history-on-start: false # 应用启动时是否清除以前存档max-file-size: 10MB # 每个日志文件的最大存储值total-size-cap: 10GB # 日志累计最大存储值max-history: 365 # 日志文件保存的最大天数

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com