SpringBoot项目集成日志

栏目: Java · 发布时间: 7年前

内容简介:SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现。默认提供了Java Util Logging,SpringBoot默认的日志输出如下所示:输出以下项目:

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

SpringBoot项目集成日志

日志格式

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

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标志
    $ java -jar myapp.jar -- debug
    
    说明:使用debug调试模式启动应用程序不会将应用程序配置为使用DEBUG级别记录日志。
    复制代码
  • 在application.yml中(或application.properties中)增加debug: true或trace: true(或debug=true/trace=true)

    application.yml文件:

    debug: true
    复制代码

    application.properties文件:

    debug=true
    复制代码

多彩输出:

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

application.yml中设置:

# 检查终端是否支持ANSI,是的话就采用彩色输出
spring:
  output:
    ansi:
      enabled: detect
复制代码

application.properties中设置:

# 检查终端是否支持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属性,否则以前轮换的日志文件将被无限期归档。(来自官网)

注意点:

  1. 日志记录系统在应用程序生命周期的早期初始化。因此,在通过@PropertySource注解加载的属性文件中找不到日志记录属性。
  2. 日志记录属性独立于实际的日志记录基础结构。因此,SpringBoot不管理特定的配置密钥(例如Logback的logback.configurationFile)。 (来自官网)

application.yml中设置:

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中设置:

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中设置:

logging:
  level:
    # com.example.demo包下所有class以DEBUG级别输出
    com.example.demo: DEBUG
    # root日志以INFO级别输出
    root: INFO
    
说明:
配置日志级别值大小写均可,例如:设置成debug/info    
复制代码

application.properties中设置:

logging.level.com.example.demo=DEBUG
logging.level.root=INFO

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

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

1. 日志级别设置选项

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

SpringBoot项目集成日志

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

SpringBoot项目集成日志

SpringBoot官网: docs.spring.io/spring-boot…


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

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro JavaScript Techniques

Pro JavaScript Techniques

John Resig / Apress / 2006-12-13 / USD 44.99

Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web s......一起来看看 《Pro JavaScript Techniques》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具