日志Logging-1
springboot使用Commons Logging记录所有内部日志,但底层日志实现保持打开状态。为Java Util日志、Log4J2和Logback提供了默认配置。在每种情况下,记录器都被预先配置为使用控制台输出,还可以使用可选的文件输出。
默认情况下,如果使用“Starters”,Logback用于日志记录。还包括适当的Logback路由,以确保使用javautil Logging、Commons Logging、Log4J或SLF4J的依赖库都能正常工作。
有很多可用于Java的日志框架。如果上面的列表看起来令人困惑,请不要担心。一般来说,您不需要更改日志依赖关系,并且springboot默认值可以正常工作。
将应用程序部署到servlet容器或应用程序服务器时,通过Java Util Logging API执行的日志记录不会路由到应用程序的日志中。这可以防止容器或其他已部署到容器上的应用程序执行的日志记录出现在应用程序的日志中。
日志格式
Spring Boot的默认日志输出类似于以下示例:
2019-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52 2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms 2019-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 2019-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
输出以下项目:
- 日期和时间:毫秒精度和容易排序。
- 日志级别:错误、警告、信息、调试或跟踪。
- 进程ID。
- ---:用于区分实际日志消息的开头。
- 线程名称:括在方括号中(控制台输出时可能会被截断)。
- Logger name:这通常是源类名(通常缩写)。
- 日志消息。
Logback没有FATAL级别。它被映射到ERROR。
控制台输出
默认的日志配置在消息写入时将其回显到控制台。默认情况下,记录ERROR、WARN和INFO级别。还可以通过使用--debug标志启动应用程序来启用“调试”模式。
$ java -jar myapp.jar --debug
也可以在application.properties设置debug=true
启用调试模式后,将配置一系列核心记录器(嵌入式容器、Hibernate和Spring Boot)以输出更多信息。启用调试模式不会将应用程序配置为使用调试级别记录所有消息。
标记颜色输出
如果您的终端支持ANSI,则使用颜色输出来帮助可读性。你可以设置spring.output.ansi.enabled来配置自动检测。
使用%clr转换字配置颜色编码。在最简单的形式中,转换器根据日志级别对输出进行着色,如下例所示:
%clr(%5p)
下表描述了日志级别到颜色的映射:
- FATAL、ERROR:Red
- WARN:Yellow
- INFO、DEBUG、TRACEGreen
或者,可以通过将颜色或样式作为转换的选项来指定应使用的颜色或样式。例如,要使文本变为黄色,请使用以下设置:
%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}
支持以下颜色和样式:
- blue
- cyan
- faint
- green
- magenta
- red
- yellow
文件输出