SpringBoot学习笔记6-SpringBoot的日志

SpringBoot学习笔记6-SpringBoot的日志,第1张

SpringBoot学习笔记6-SpringBoot的日志 前言

以spring官方文档为基础,官方地址:Spring Boot
目前官方正式版本最新为:2.5.6(这个学习笔记系列基本是以翻译为主,不用浪费时间期望获取更多。更多是给自己看官方文档做的的一个笔记)
当前篇的内容:介绍官方文档2.5.6的第七章之SpringApplication特性_日志
参考文章有:1. SpringBoot官方文档 2. SpringBoot之Logging

1. 默认设置
  • 默认控制台输出日志
  • 默认使用 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-web
            
            
                
                    logback-classic
                    ch.qos.logback
                
                
                
                    log4j-to-slf4j
                    org.apache.logging.log4j
                
            
        

并且引入SLF4J对于Log4j的适配包


        
            org.slf4j
            slf4j-log4j12
        

2. 日志格式
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。
进程标识。
一个—分离器来区分实际日志消息的开始。
线程名称:括在方括号中(可能会被截断以用于控制台输出)。
记录器名称:这通常是源类名称(通常缩写)。
日志消息。

默认日志输出颜色:

3. 文件输出

默认情况下,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.log
4. 日志级别

所有支持的日志系统都可以通过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=INFO
5. 自定义日志输出格式
  • 默认的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%n
6. 和Profile结合使用的日志配置

    



    



    


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5438243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存