Spring Boot 默认使用Logback记录日志
Spring Boot starter 都会默认引入spring-boot-starter-logging,不需要再引入
日志级别从高到低:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
如果设置为 WARN ,则低于 WARN 的信息都不会输出。
Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。
2019-08-20 10:42:03.680 INFO 13728 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on hkgi-PC with PID 13728 (E:\java\demo\target\classes started by Administrator in E:\java\demo)2019-08-20 10:42:03.683 INFO 13728 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default2019-08-20 10:42:04.279 INFO 13728 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.2019-08-20 10:42:04.336 INFO 13728 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 51ms. Found 1 repository interfaces.2019-08-20 10:42:04.617 INFO 13728 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$58c4426d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)2019-08-20 10:42:04.899 INFO 13728 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
A.日期和时间--精确到毫秒,并按照时间进行简单的排序
B.日志级别--ERROR,WARN,INFO,DEBUG,TRACE
C.进程ID号
D.日志内容,用"---"分隔符分开
E.线程名字——括在方括号中F.日志的名字--通常对应的是类名
说明:
Logback没有FATAL级别,映射到ERROR
配置
(1)在application.properties中添加对应的配置
指定包下日志输出的等级,root表示默认的级别
logging.level.root= WARN
logging.level.org.springframework.web= INFO
logging.level.org.hibernate = ERROR
logging.level.org.apache = INFO
输出样式
logging.level.root= WARN
logging.level.org.springframework.web= INFO
logging.level.org.hibernate = ERROR
logging.level.org.apache = INFO
logging.pattern.console= %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
设置文本的颜色
logging.level.root= WARN
logging.level.org.springframework.web= INFO
logging.level.org.hibernate = ERROR
logging.level.org.apache = INFO
#检测终端是否支持ANSI,是的话就采用彩色输出
spring.output.ansi.enabled=detect
logging.pattern.console= %clr(%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n){blue}
输出到文件
logging.level.root= WARN
logging.level.org.springframework.web= INFO
logging.level.org.hibernate = ERROR
logging.level.org.apache = INFO
logging.pattern.console= %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
logging.path = logs
logging.pattern.file= %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
## 当文件超过1G时,归档压缩
logging.file.max-size=1GB
## 日志文件最多保存3天
logging.file.max-history=3
(2)使用XML配置Logback
还是有很多高级特性不太好配置,因此SpringBoot还是支持通过加载logback-spring.xml配置文件来定义日志相关的参数
在src/main/resources下创建logback-spring.xml文件
说明:
使用springProfile 分别配置了开发(dev),生产(prod)环境
springProfile 如何指定?
application.properties中添加配置项
spring.profiles.active: dev
表示默认加载的就是开发环境的配置
创建不同环境下的配置文件(可以为不同的环境配置不同的数据库信息)
开发环境 : application-dev.properties
生产环境:application-prod.properties
启动应用时Spring Boot通过applcation.properties文件中的spring.profiles.active配置项加载相关环境的配置信息
还可以通过启动命令加参数 --spring.profiles.active=xxx来控制加载哪个环境的配置
eg:java -jar test.jar --spring.profiles.active=dev
推荐文章
发表评论