知乎专栏 |
目录
通过命令行改变日志的输出级别
java -jar app.jar --debug 在application.properties中配置 debug=true application.yml debug=true 相同的方式使能TRACE级别的日志 java -jar app.jar --trace application.properties trace=true application.yml trace=true
一般的日志需求可以通过配置 application.properties实现。
Spring Boot中 日志默认是输出到控制台的,这样是为了方便开发人员,但是在生产环境中应该输出到日志文件中。
配置如下
![]() | 提示 |
---|---|
注意:这两个属性不能同时配置,只需要配置一个即可。 |
![]() | 提示 |
---|---|
旧版本 logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log logging.path,设置目录,如果 logging.file 没有设置,会在该目录下创建spring.log文件作为默认日志文件。 logging.file=target/spring.log #logging.path= 如果仍不能满足可以使用 logback.xml 配置日志。 logging.path=/tmp logging.config=classpath:logback.xml |
几种常见的日志级别由低到高分为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
显示所有DEBUG信息
logging.level.root=DEBUG
仅仅显示 springframework 调试信息
logging.level.org.springframework.web=DEBUG
仅仅显示 cn.netkiller.web.TestController 调试信息
private static final Logger log = LoggerFactory.getLogger(TestController.class); log.debug(message); logging.level.cn.netkiller.web.TestController=DEBUG
YAML 配置文件写法
logging: level: root: info cn.netkiller.test: debug cn.netkiller.sharding.MonthShardingAlgorithm: DEBUG
禁止控制台日志输出,同时将日志写入日志文件.
src/main/resources/application.properties
logging.file.path=/tmp logging.file.name=/tmp/spring.log logging.level.root=INFO logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR
src/main/resources/logback.xml
$ cat src/main/resources/logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
使用 java -jar project-version-xxx.jar 启动后控制不会再输出日志
定制日志格式有两个配置
分别是控制台的输出格式和文件中的日志输出格式
举例
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
格式说明
%d{HH:mm:ss.SSS} 日志输出时间 %thread 输出日志的进程名字,这在Web应用以及异步任务处理中很有用 %-5level 日志级别,并且使用5个字符靠左对齐 %logger 日志输出者的名字 %msg 日志消息 %n 平台的换行符