| 知乎专栏 |
目录
通过命令行改变日志的输出级别
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 平台的换行符