目前比较流行的记录日志框架或工具:Java Util Logging,Log4J, Log4J2和Logback。
每种Logger都可以通过配置使用控制台或者文件输出日志内容。
默认情况下,Spring Boot会用Logback(1)来记录日志,并用INFO级别(2)输出到控制台(3),不到文件。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。
Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。
如果没有这个Jar,maven添加依赖
我们的Spring Boot应用将自动使用logback作为应用日志框架,Spring Boot启动的时候,由org.springframework.boot.logging.Logging-Application-Listener根据情况初始化并使用。
一:日志级别
日志级别从低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
您还可以通过启动您的应用程序--debug标志来启用“调试”模式(开发的时候推荐开启)
以下两种方式皆可:
1.在运行命令后加入--debug标志,如:$ java -jar springTest.jar --debug
2.在application.yml中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
二:Logback简单配置
在application.yml中配置,这种配置方式简单,但能实现的功能也很局限,只能:定制输出格式、输出文件的路径、指定某个包下的日志级别,如:
logging:
pattern:
console: "%d - %msg%n"
file: /var/log/tomcat/sell.log
level: com.com.withub.controllers: debug
三:Logback详细配置
在resource目录下新建logback-spring.xml
四:日志的几点注意
1.如果classpath下有logback-test.xml会优先生效,xxx-spring.xml优先级最低
2.日志系统初始化之前日志输出有DEBUG,因为此刻logback-spring还未生效,spring boot默认日志级别是DEBUG
3.有些依赖的库日志输出不受控制,是因为最终使用的logger不是logback,比如使用的log4j
4. Spring Boot使用JUnit时,如果没有配置SpringBootTest注解,日志系统根本不会得到初始化,会使用org.slf4j.impl.StaticLoggerBinder获取,如果在test/resource下面存在logback-test.xml则会生效,否则就使用系统默认的配置。如果配置了置SpringBootTest注解,则SpringBoot会正常的初始化,日志系统会正常加载
: