Spring Boot 2.X 学习日记——日志管理


日志,一直是我们实际开发过程中,一个绕不开的话题。以前项目中,那些关于日志的繁琐的配置问题,在 Spring Boot中,已经不再是一个问题了。 Spring Boot让一切都变得简单了。

Spring Boot默认使用的是Logback这个日志框架,一般而言,使用默认的就足够了,如果读者不习惯的话,只需要更换对应框架的Starter就足够了。

日志格式

Spring Boot的默认输出格式如下:

2019-03-27 12:29:52.994  INFO 13334 --- [           main] com.boot.demo.BootApplication            : Starting BootApplication on fangjiaxindeMacBook-Pro.local with PID 13334 (/Volumes/Elements/work/spring-boot/chapter3/out/production/classes started by ivan in /Volumes/Elements/work/spring-boot/chapter3)
2019-03-27 12:29:52.999  INFO 13334 --- [           main] com.boot.demo.BootApplication            : No active profile set, falling back to default profiles: default
2019-03-27 12:29:54.166  INFO 13334 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-03-27 12:29:54.189  INFO 13334 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-03-27 12:29:54.189  INFO 13334 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.13

输出内容:

内容注释
日期时间精确到毫秒,易于排序
日志级别ERROR,WARN,INFO,DEBUG,TRACE
进程号
间隔符用’—'标识开始输出日志信息
进程名方括号括起来(可能会截断控制台输出)
日志实例名称通常是输出日志的类名
日志信息

Logback没有FATAL级别,FATAL级别被映射到ERROR级别了。

控制台输出

Spring Boot默认将所有写入文件的日志信息输出到控制台。这些日志信息的级别包括:ERROR,WARN,INFO。如果需要DEBUG级别的日志,可以在启动项目时加上—debug参数

java -jar myapp.jar --debug

或者在application.yml中加入debug=true

当启动debug模式后,只有一些核心部分(Container,Hibernate,Spring Boot)才会输出更多的日志信息,其它非核心部分还是保持原级别不变。

或者,你也可以通过在启动时加上—trace(或者在application.yml中加入trace=true)使用trace模式。trace模式可以让一些核心类(Container,Hibernate schema generation,Spring)输出Trace级别的日志。

假如我们想在自己的位置输出这些级别的日志,则需要一些额外的配置。

log:
	level:
		包名 : 日志级别

颜色输出

如果你的环境支持ANSI编码的话,为日志加上点颜色,可能会提高日志的可读性。可以在配置文件中设置 spring.output.ansi.enabled来改变默认值

  • ALWAYS:启用颜色输出
  • DETECT:尝试检测颜色输出是否可用
  • NEVER:禁用颜色输出

日志级别 - 颜色映射表

级别颜色
FATAL,ERROR红色
WARN黄色
INFO,DEBUG,TRACE绿色

如果想改变日志默认色值,则可以通过%clr来转换。

%clr(%d {yyyy-MM-dd HH:mm:ss.SSS}{yellow}

比如,以上的代码,可以使得文字变为黄色。

文件输出

默认情况下,Spring Boot仅记录到控制台,不会写入日志文件。如果除了控制台输出之外还要编写日志文件,则需要在application.yml文件中设置 logging.filelogging.path属性。

**logging.file:**输出到指定文件。

logging.path:输出到指定路径。

Spring Boot中,默认在日志文件达到10MB时,会做切割。想改变这个大小的话,可以通过logging.file.max-size来操作。而且默认情况下,Spring Boot是不会主动删除日志文件的,除非使用logging.file.max-history来限定保存天数。

自定义日志配置文件

Spring Boot中,我们可以通过logging.config参数来指定我们自己的配置文件。

根据我们使用的日志框架不同,Spring Boot会加载的日志文件也不一样。

日志框架配置文件
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j2Log4j2-spring.xml,log4j2.xml
JDK(Java Util Logging)Logging.properties
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值