gpt4 book ai didi

SpringBoot项目集成日志的实现方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SpringBoot项目集成日志的实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

springboot使用commons logging进行所有内部日志记录,但保留底层日志实现。默认提供了java util logging, log4j2 和logback日志配置。在每种情况下,都预先配置为使用控制台输出,并且还提供了可选的文件输出。(来自官网) 。

SpringBoot项目集成日志的实现方法

日志格式 。

springboot默认的日志输出如下所示:

?
1
2
3
4
5
2014 - 03 - 05 10 : 57 : 51.112 info 45469 --- [   main] org.apache.catalina.core.standardengine : starting servlet engine: apache tomcat/ 7.0 . 52
2014 - 03 - 05 10 : 57 : 51.253 info 45469 --- [ost-startstop- 1 ] o.a.c.c.c.[tomcat].[localhost].[/]  : initializing spring embedded webapplicationcontext
2014 - 03 - 05 10 : 57 : 51.253 info 45469 --- [ost-startstop- 1 ] o.s.web.context.contextloader   : root webapplicationcontext: initialization completed in 1358 ms
2014 - 03 - 05 10 : 57 : 51.698 info 45469 --- [ost-startstop- 1 ] o.s.b.c.e.servletregistrationbean  : mapping servlet: 'dispatcherservlet' to [/]
2014 - 03 - 05 10 : 57 : 51.702 info 45469 --- [ost-startstop- 1 ] o.s.b.c.embedded.filterregistrationbean : mapping filter: 'hiddenhttpmethodfilter' to: [/*]

输出以下项目:

  • 日期和时间:毫秒精度并且容易排序
  • 日志级别:error, warn, info, debug, trace
  • 进程id
  • --- 分隔符来区分实际日志的开始
  • 线程名:括在方括号中(可能会被截断)
  • 日志记录器名:这通常是源类名(通常缩写)
  • 日志信息

logback中没有fatal(致命)级别,它被映射到error级别 。

( 日志格式 来自 官网 ) 。

控制台输出 。

springboot控制台输出默认支持三种日志级别:error,warn和info 。

如果还想输出别的级别日志,例如debug或trace(只能二选一),如下操作:

启动应用程序时,增加--debug或--trace标志 。

?
1
$ java -jar myapp.jar -- debug

说明:使用debug调试模式启动应用程序不会将应用程序配置为使用debug级别记录日志。复制代码 。

在application.yml中(或application.properties中)增加debug: true或trace: true(或debug=true/trace=true) 。

application.yml文件:

?
1
debug: true

application.properties文件:

?
1
debug= true

多彩输出:

如果终端支持ansi(表示颜色),可以设置彩色输出.

application.yml中设置:

?
1
2
3
4
5
# 检查终端是否支持ansi,是的话就采用彩色输出
spring:
  output:
  ansi:
   enabled: detect

application.properties中设置:

?
1
2
# 检查终端是否支持ansi,是的话就采用彩色输出
spring.output.ansi.enabled=detect

文件输出 。

springboot默认配置日志只会输出到控制台,并不会记录到文件中,但通常生产环境需要把日志记录到文件中.

配置属性如下:

  • logging.file: 设置日志输出文件,绝对路径或相对路径都可以。
  • logging.path: 设置日志输出目录,会在该目录下创建spring.log文件,并写入日志内容。

日志文件在达到10 mb时滚动输出,并且与控制台输出一样,默认情况下会记录error,warn和info级别的日志。可以使用logging.file.max-size属性更改大小限制。除非已设置logging.file.max-history属性,否则以前轮换的日志文件将被无限期归档。(来自官网) 。

注意点:

日志记录系统在应用程序生命周期的早期初始化。因此,在通过@propertysource注解加载的属性文件中找不到日志记录属性.

日志记录属性独立于实际的日志记录基础结构。因此,springboot不管理特定的配置密钥(例如logback的logback.configurationfile)。 (来自官网) 。

application.yml中设置:

?
1
2
3
4
5
6
7
8
9
10
11
logging:
  # 设置相对路径的日志输出文件
  file: log/my.log
  # 设置日志输出路径,默认会生成log/spring.log日志文件
  path: log
 
logging:
  # 设置绝对路径的日志输出文件
  file: d:\ideaprojects\springbootdemo\log1\mylog1.log
  # 设置日志输出路径,默认会生成log/spring.log日志文件
  path: log

application.properties中设置:

?
1
2
logging.file=log/my.log
logging.path=log

SpringBoot项目集成日志的实现方法

级别控制 。

配置属性格式:logging.level.*=level 。

  • logging.level: 日志级别控制前缀,*为包名或logger名
  • level: 选项trace, debug, info, warn, error, fatal, off

application.yml中设置:

?
1
2
3
4
5
6
logging:
  level:
  # com.example.demo包下所有 class 以debug级别输出
  com.example.demo: debug
  # root日志以info级别输出
  root: info

说明: 配置日志级别值大小写均可,例如:设置成debug/info 。

application.properties中设置:

?
1
2
logging.level.com.example.demo=debug
logging.level.root=info

说明:配置日志级别值大小写均可,例如:设置成debug/info 。

刨根问底,死磕自己(选看) 。

1. 日志级别设置选项 。

源码中系统日志级别是个枚举类,列出了所有日志级别,如下截图:

SpringBoot项目集成日志的实现方法

根据在application.yml中设置的level值,匹配系统日志枚举类,最终设置系统相应包下的日志级别.

SpringBoot项目集成日志的实现方法

springboot官网: https://docs.spring.io/spring-boot/docs/2.1.2.release/reference/htmlsingle/ 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://juejin.im/post/5c525fac51882525800544b4 。

最后此篇关于SpringBoot项目集成日志的实现方法的文章就讲到这里了,如果你想了解更多关于SpringBoot项目集成日志的实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com