1. 默认设置以spring官方文档为基础,官方地址:Spring Boot
目前官方正式版本最新为:2.5.6(这个学习笔记系列基本是以翻译为主,不用浪费时间期望获取更多。更多是给自己看官方文档做的的一个笔记)
当前篇的内容:介绍官方文档2.5.6的第七章之SpringApplication特性_日志
参考文章有:1. SpringBoot官方文档 2. SpringBoot之Logging
- 默认控制台输出日志
- 默认使用 Logback 记录日志(可选择Java Util Logging、Log4J2和Logback,也可以)
- 默认日志级别:INFO(日志级别:ERROR,WARN,INFO,DEBUG,或TRACE)
不同的日志框架,默认的配置文件名称不太。
通常情况下,日志是由一个抽象层+实现层的组合来搭建的。抽象层有:JCL、SLF4J、jboss-logging,实现层有jul、log4j、log4j2、logback。而SpringBoot选择SLF4J+Logback的组合。
当我们使用其他框架时,框架自身可能也带着自己的日志框架。可以选择在pom文件对应框架中排除掉(exclusion)
而如果想切换SpringBoot的默认日志框架,需要先排除starter中的Logback依赖以及Log4J替换包的依赖
org.springframework.boot spring-boot-starter-weblogback-classic ch.qos.logback log4j-to-slf4j org.apache.logging.log4j
并且引入SLF4J对于Log4j的适配包
2. 日志格式org.slf4j slf4j-log4j12
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: [/*]
日期和时间:毫秒精度且易于排序。
日志级别:ERROR,WARN,INFO,DEBUG,或TRACE。
进程标识。
一个—分离器来区分实际日志消息的开始。
线程名称:括在方括号中(可能会被截断以用于控制台输出)。
记录器名称:这通常是源类名称(通常缩写)。
日志消息。
默认日志输出颜色:
默认情况下,Spring Boot 只记录到控制台,不写入日志文件。如果你想在控制台输出之外写入日志文件,你需要设置一个logging.file.name或者logging.file.path属性(例如在application.properties中配置)。如果不特殊设置,输出的文件日志级别也是INFO。
logging.file.path和logging.file.name不同时存在,同时存在以logging.file.name为主。
# 生成到指定路径,日志名称spring.log。 logging.file.path=output/logs # 不指定的情况下默认生成在项目根目录(也可指定绝对路径),日志名称随意起 logging.file.name=myLog.log4. 日志级别
所有支持的日志系统都可以通过Spring Environment来指定日志级别,例如application.properties,可以使用“logging.level.*=LEVEL”来指定日志的级别,"LEVEL"的取值可以是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。配置示例如下:
#root日志以WARN级别输出 logging.level.root=WARN #org.springframework.web包下的日志以DEBUG级别输出 logging.level.org.springframework.web=DEBUG #org.hibernate包下的日志以ERROR级别输出 logging.level.org.hibernate=ERROR
如果,我们需要指定我们的应用日志级别了,我们也可以使用同样的方式,如下(com.example为包名):
logging.level.com.example=INFO5. 自定义日志输出格式
- 默认的Logback格式输出
- 默认的Log4j 2格式输出
- 默认的Java Util logging格式输出
可以通过logging.pattern.file以及logging.pattern.level来配置我们需要的日志输出格式,例如(只针对logback):
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n6. 和Profile结合使用的日志配置
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)