42

SpringBoot | 第四章 :日志管理

 5 years ago
source link: http://www.importnew.com/29363.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Spring Boot在所有内部日志中使用 Commons Logging ,但是默认配置也提供了对常用日志的支持,如: Java Util LoggingLog4JLog4J2Logback 。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

格式化日志

默认的日志输出如下:

2016-04-13 08:23:50.120  INFO 37397 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.11.Final}

输出内容元素具体如下:

---

控制台输出

在Spring Boot中默认配置了 ERRORWARNINFO 级别的日志输出到控制台。

我们可以通过两种方式切换至 DEBUG 级别:

  • 在运行命令后加入 --debug 标志,如: $ java -jar myapp.jar --debug
  • application.properties 中配置 debug=true ,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。

多彩输出

如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在 application.properties 中设置 spring.output.ansi.enabled 参数来支持。

  • NEVER:禁用ANSI-colored输出(默认项)
  • DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
  • ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用

文件输出

Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。

若要增加文件输出,需要在 application.properties 中配置 logging.filelogging.path 属性。

logging.file=my.log
logging.path=/var/log

日志文件会在10Mb大小的时候被截断,产生新的日志文件,默认级别为:ERROR、WARN、INFO

级别控制

在Spring Boot中只需要在 application.properties 中进行配置完成日志记录的级别控制。

配置格式: logging.level.*=LEVEL

  • logging.level :日志级别控制前缀, * 为包名或Logger名
  • LEVEL :选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

举例:

  • logging.level.com.didispace=DEBUGcom.didispace 包下所有class以DEBUG级别输出
  • logging.level.root=WARN :root日志以WARN级别输出

自定义日志配置

由于日志服务一般都在ApplicationContext创建前就初始化了,它并不是必须通过Spring的配置文件控制。因此通过系统属性和传统的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

  • Logback: logback-spring.xmllogback-spring.groovylogback.xmllogback.groovy
  • Log4j: log4j-spring.propertieslog4j-spring.xmllog4j.propertieslog4j.xml
  • Log4j2: log4j2-spring.xmllog4j2.xml
  • JDK (Java Util Logging): logging.properties

Spring Boot官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是 logback.xml

自定义输出格式

在Spring Boot中可以通过在 application.properties 配置如下参数控制输出格式:

  • logging.pattern.console:定义输出到控制台的样式(不支持JDK Logger)
  • logging.pattern.file:定义输出到文件的样式(不支持JDK Logger)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK