spring boot学习之Logging

本文详细介绍了SpringBoot中日志的基本配置方法,包括如何调整日志级别、控制日志输出位置、设置日志文件大小及保留天数,以及如何通过自定义日志配置和使用Logback扩展来实现更高级的日志管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.spring boot默认的日志输出格式,默认输出的日志等级为:ERROR-level,WARN-level, and INFO-level,如果想要打印出debug日志信息,可在 application.properties配置文件中 加上debug=true

 2.日志输出到文件中,spring boot默认日志是只输出到控制台,不输出到文件的。如果想要日志输出到文件的话,可以通过在application.properties设置logging.file 或 logging.path这两个属性,具体效果如下表所示:

默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件。例如:my.log.1。这个大小的限制可以通过:logging.file.max-size这个属性进行修改,不过我自己在尝试改的时候,设置属性为:logging.file.max-size=2MB,并没有修改成功,日志一直往my.log文件中的入,并没有新的日志文件产生,这个问题先留着吧。同时可以通过设置logging.file.max-history属性确认日志保留的天数。例如:logging.file.max-history =30,日志保留30天。

3.设置日志告警级别

可以通过在application.properties中配置 logging.level.<logger-name>=<level>来控制日志输出级别,例如:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

4.日志分组,如果想要将相关的多个模块的输出日志等级设为统一的级别,可以用到组这个概念

举例:

5.自定义日志配置

你可以使用org.springframework.boot.logging.LoggingSystem系统属性强制Spring Boot使用特定的日志记录系统。 该值应该是LoggingSystem实现的完全限定类名。 您还可以使用none值完全禁用Spring Boot的日志记录配置。

根据你的日志记录系统,以下文件将会被加载

官方建议 使用使用-spring 变量来进行日志配置,例如 使用logback-spring.xml而不是logback.xml,使用后者的话,spring无法完全控制日志初始化。

为了帮助进行自定义,一些属性从spring环境中被转移到了系统配置中,如下表所示:

 

如果你想要在日志属性中使用占位符,你应该使用spring boot的占位符而不是基础框架的占位符,值得注意的是,如果你使用Logback,你应该使用":"作为属性名和值之间的分界符而不是使用"-"。

6.Logback 扩展

 spring boot 为了帮助高级的配置 包含了一系列的对于logback的扩展,你可以在logback-spring.xml中使用这些扩展。

note:因为标准的logback.xml文件加载的太早,不能在它里头进行扩展,需要使用logback-spring.xml或者是 定义一个logging.config属性。

这些扩展不能用于Logback的配置扫描,如果你尝试这么去做的话,可能会报如下的错误:

6.1 特殊概要文件配置

<springProfile>标记允许您根据活动Spring概要文件选择性地包含或排除配置的部分。

<springProfile name="staging">
<!-- 当staging这个配置文件生效的时候 在这里头的配置 生效-->
</springProfile>
<springProfile name="dev | staging">
<!--  当dev | staging这个配置文件生效的时候 在这里头的配置 生效 -->
</springProfile>
<springProfile name="!production">
<!-- 当  "production" 这个配置文件不生效的时候,这其中的配置生效 -->
</springProfile>

6.2 环境变量

   <springProperty>可以暴露spring 环境中的属性, 这样的话,就可以在logback可以使用spring 环境中定义的这些变量。

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"
defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
<remoteHost>${fluentHost}</remoteHost>
...
</appender>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值