美文网首页我爱编程
Spring Boot 2.0 教程 - 日志详解

Spring Boot 2.0 教程 - 日志详解

作者: 代码拾遗 | 来源:发表于2018-05-20 16:01 被阅读0次

原文链接:

https://www.codemore.top/p/8210a891-5f6c-3811-92f4-994110faf023

Spring Boot 内部使用commons logging 作为日志输出工具,同时也可以配置其他的工具例如,Java Logging,Log4j2,logback。 默认情况下,如果加入了starter,默认使用Logback输出日志。

日志格式

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

2014-03-0510:57:51.112INFO45469--- [          main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.522014-03-0510:57:51.253INFO45469--- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]      : Initializing Spring embedded WebApplicationContext2014-03-0510:57:51.253INFO45469--- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in1358ms2014-03-0510:57:51.698INFO45469--- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet:'dispatcherServlet'to [/]2014-03-0510:57:51.702INFO45469--- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter:'hiddenHttpMethodFilter'to: [/*]

输出的信息包括

日期和时间

日志级别,包括ERROR,WARN,INFO,DEBUG,TRACE

线程ID

--- 作为分割符,区别日志开始和真正日志

线程名,使用中括号括起来

Logger名,一般是输出日志的类名

日志信息

注意Logback没有FATAL级别的日志,他映射为ERROR

终端输出

默认情况下Spring Boot将日志输出到控制台,默认输出ERROR,WARN,INFO级别的日志。可以通过--debug参数开启DEBUG级别的输出

java -jar app.jar --debug

或者是在application.properties中设置debug=true开启DEBUG级别的日志 当开启DEBUG级别的日志的时候,其他组件例如(内置容器,Hibernate等)都会输出DEBUG信息。

彩色输出

如果控制台支持ANSI,那么可以使用彩色输出。可以在application.properties文件配置spring.output.ansi.enabled设置重写自动检测。 颜色的代码又%clr配置。例如%clr(%5p) 默认各个级别的日志的颜色

FATAL 红色

ERROR 红色

WARN 黄色

INFO 绿色

DEBUG 绿色

TRACE 绿色

同样也可以自己指定颜色,例如

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

其他支持的颜色有,blue,cyan,faint,green,magenta,red,yellow。

文件输出

默认情况下,Spring Boot不输出日志到文件中,如果需要输出日志到文件中,需要配置logging.file或者logging.path属性,例如在application.properties文件中配置。 logging.file指定输出的文件名,可以是相对路径有可以是绝对路径。 logging.path指定输出的文件目录,输出文件默认为spring.log。同样可以设置相对或者绝对路径。 默认情况下,日志超过10M就会自动进行日志rotate。可以通过设置logging.file.max-size属性设置最大的日志文件限制。logging.file.max-history属性可以设置最多保存多少日志,如果不设置,早期文件会被归档并不会被删除。

日志级别

日志的级别可以通过logging.level.=设置,例如设置root的日志级别

logging.level.root=WARN

logging.level.org.springframework.web=DEBUG

logging.level.org.hibernate=ERROR

配置日志

Spring Boot 日志配置如下

EnvironmentSystem Property解释

logging.exception-conversion-wordLOG_EXCEPTION_CONVERSION_WORD记录异常是如何进行转换

logging.fileLOG_FILE配置日志文件

logging.file.max-sizeLOG_FILE_MAX_SIZE日志最大容量

logging.file.max-historyLOG_FILE_MAX_HISTORY归档文件的数量

logging.pathLOG_PATHlog输入路径,默认暑促spring.log

logging.pattern.consoleCONSOLE_LOG_PATTERN输出到控制台的格式

logging.pattern.dateformatLOG_DATEFORMAT_PATTERN输入时间格式

logging.pattern.fileFILE_LOG_PATTERN输出到文件的格式

logging.pattern.levelLOG_LEVEL_PATTERNlog级别

PIDPID线程ID

Logback扩展

可以通过logback-spring.xml 对logback尽显扩展配置。因为logback.xml 加载很早,所以需要使用logback-spring.xml或者logging.config配置Spring的logback属性。

指定Spring 的Profile

可以通过 springProfile觉得在哪个环境中使用,

环境变量的属性

可以通过获取Spring Environment的配置属性

${fluentHost}...

相关文章

网友评论

    本文标题:Spring Boot 2.0 教程 - 日志详解

    本文链接:https://www.haomeiwen.com/subject/nldtjftx.html