8.玩转Spring Boot 日志配置

来源:互联网 发布:程序员手机输入法 编辑:程序博客网 时间:2024/05/02 02:10

玩转Spring Boot 日志配置


      Spring Boot 使用Commons Logging作为内部日志记录。对Java Util Logging, Log4J2 and Logback. 提供了默认的配置。默认情况下在控制台输出也可以配置输出到文件中。默认使用Logback作为日志记录。

1.日志格式

      Spring Boot 默认输出的日志格式如下:
2014-03-05 10:57:51.112  INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.522014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1358 ms2014-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: [/*]
输出的节点如下:
(1)日期和时间 - 精确到毫秒,且易于排序。
(2)日志级别 - ERROR, WARN, INFO, DEBUG 或 TRACE。
(3)Process ID。
(4)一个用于区分实际日志信息开头的---分隔符。
(5)线程名 - 包括在方括号中(控制台输出可能会被截断)。
(6)日志名 - 通常是源class的类名(缩写)。
(7)日志信息。

2.输出到控制台

      默认的日志配置将日志输出到控制台中。可以通过命令行开启DeBug模式,例如:
java -jar myapp.jar --debug
也可以在application.properties增加属性debug=true,效果一样,如果看过前面的文章的话,应该知道优先级。

3.输出为彩色

      在application.properties文件中设置:spring.output.ansi.enabled设置即可,spring.output.ansi.enabled有三个值:
     (1)NEVER : 从不使用
     (2)DETECT : 自动检查终端是否支持ANSI,如果支持则使用(建议使用
     (3)ALWAYS :总是使用,如果终端不支持的话,会出现一些特殊字符。

4.输出到文件中

      输出到文件只需要在application.properties文件中设置logging.file或者logging.path。下面是官方给出的组合使用表:
logging.filelogging.path示例描述(none)(none)  指定具体文件(none)my.log写到特定的日志文件里,名称可以是一个精确的位置或相对于当前目录(none)指定具体路径/var/log写到特定文件夹下的spring.log里,名称可以是一个精确的位置或相对于当前目录

5.设置日志级别

      在application.properties文件设置:logging.level,例如:
logging.level.org.springframework.web=DEBUGlogging.level.org.hibernate=ERROR

6.自定义配置

      Spring Boot 会根据当前使用的日志类别来自动加载以下配置:
Logger System加载文件Logbacklogback-spring.xml, logback-spring.groovy, logback.xml or logback.groovyLog4j2log4j2-spring.xml or log4j2.xmlJDK (Java Util Logging)logging.properties
     注意:logback-spring.xml与logback.xml的区别,使用logback-spring.xml的话,是可以使用Spring profile的支持,而logback.xml是不可以使用的。
例如配置多环境日志,代码如下:
<?xml version="1.0" encoding="UTF-8"?><configuration>    <include resource="org/springframework/boot/logging/logback/base.xml" />    <logger name="org.springframework" level="DEBUG"/>       <!-- 开发环境 -->    <springProfile name="dev">        <logger name="org.springframework" level="INFO"/>    </springProfile>        <!-- 生产环境 -->    <springProfile name="prod">        <logger name="org.springframework" level="ERROR"/>    </springProfile>   </configuration>
以上的意思:配置了org.springframework默认级别为:DEBUG,在开发环境下修改为INFO级别,在生产环境下为ERROR级别

     具体内容就不叙述了,请参照logback或者log4j的配置。


有兴趣的朋友可以加群探讨相互学习:

Spring Boot QQ交流群:599546061

0 0
原创粉丝点击