Spring Boot 日志

Spring Boot使用Apache的通用日志接口Commons Logging作为所有内部日志记录器,但是具体实现选择不做要求,默认配置对java.util.Logging,Log4J2和Logback支持。每种日志记录器都默认预配置为控制台输出,但输出到文件亦可用。

通常情况下,如果你使用的是”starters”,LogBack为默认日志输出工具,同时包含Logback routing以确保使用Java Util Logging,Common Logging,Log4J 或者 SLF4J的其他依赖库能够正常工作。

日志输出格式

Spring Boot默认的日志输出如下:

2017-09-07 15:46:51.112 INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
2017-09-07 15:46:51.112 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]      : Initializing Spring Embedded WebApplicationContext

输出格式如下:

  • Date and Time:毫秒级的日期时间
  • Log Level:日志输出级别
  • Process ID:进程号
  • — :与真正日志输出的分隔
  • Thread name:线程名称,以[]括起来部分
  • Logger name:日志发生的类
  • Message:日志信息

注:Logback没有FATAL日志级别,合并于ERROR。

控制台输出

Spring Boot默认配置将日志打印在控制台上,ERROR,WARN,INFO级别的日志默认输出。你也可以以debug模式启动你的项目,如下:

$ java -jar myapp.jar --debug

注:也可以通过在application.properties文件中加入debug=true实现以debug模式启动项目。

当以debug模式启动时,核心日志记录器(内嵌的容器,Hibernate和Spring Boot)等会配置为输出更多的信息,但是以debug模式启动并不意味着配置你的项目输出所有DEBUG级别的日志信息。

另外,Spring Boot支持高亮输出,如在application.properties中添加如下内容:

spring.output.ansi.enabled=ALWAYS

文件输出

默认情况下,Spring Boot只向控制台输出日志,而不会在文件中记录日志,如果要将日志记录到文件中,需要设置logging.file或者logging.path属性到application.properties文件中。

其中logging.file,用于指定日志文件的名称,在logging.path未指定时,可以是含(绝对或者相当当前文件的)路径的文件名。反之,亦然。

输出日志到文件时,日志文件默认最大10MB,同控制台一样默认输出ERROR,WARN,INFO级别的日志。

注:由于日志系统在Spring Boot应用生命周期中初始化的早,配置在@PropertySource注解加载的文件中的日志属性是无效的。

日志级别

所有被支持的日志系统可以在Spring的环境变量中配置其日志级别,如在application.properties文件中指定。

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

订制日志配置

可以通过在classpath中包含对应的库的方式激活对应的日志系统,或者提供适当的配置文件进一步做日志订制。如果配置文件非classpath下,需通过logging.config属性指定。

你可以强制Spring Boot使用某一种日志系统,通过org.springframework.boot.logging.LoggingSystem属性指定,指定的值需要为class实现的全名,如果指定为none,则为禁用Spring Boot的全部日志配置。

如果指定日志系统为Logback,对应配置文件可为logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy;如果指定日志系统为Log4j2,对应配置文件应为log4j2-spring.xml,log4j2.xml;如果指定日志系统为Java Util Logging,对应配置文件为logging.properties。

如果可能,推荐使用-spring格式日志配置文件名,如命名为logback-spring.xml而不是logback.xml。如果使用标准配置位置,Spring不能完全控制日志系统的初始化。

关于日志配置的几个Spring环境变量:

  • logging.exception-conversion-word:用于记录异常时用的转换词。
  • logging.file:如果指定,则做为日志配置的默认配置。
  • logging.path:如果指定,则做为日志配置的默认配置。
  • logging.pattern.console:指定输出到控制台的日志格式,仅支持默认的logback配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值