日志等级控制
- 在Spring 全局配置文件中,可以分别对具体的包名设置日志等级
示例
#根据包名设置权限
logging:
level:
root: info
com.example.service: debug
com.example.controller: debug
com.example.dao: debug
示例
#根据分组设置权限
logging:
group:
example: com.example.service, com.example.controller, com.example.dao…
level:
root: info
example: debug
日志输出格式
- logging.pattern.console有以下字符串参数:
常用参数 |
描述 |
%d |
输出完整的日期时间 |
%clr() %clr(){} |
为输出字符添加颜色,默认绿色,例如 %clr(%p) {}用于设置颜色,例如 %clr(%p){red} |
%m |
输出的消息 |
%n |
换行符 |
%p |
日志level级别 |
%t |
线程名 |
%c |
类名 |
%1,%2,%3… |
左对齐+占位符大小,例如%5p按五个字符左对齐 |
%-1,%-2,%-3… |
右对齐+占位符大小,例如%-5p按五个字符右对齐 |
示例
logging.pattern.console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"
输出日志到文件
- 如果要输出控制台打印的日志文件,则需在 application.properties
中设置 logging.file 或 logging.path
属性。
- logging.file
设置文件,可以是绝对路径,也可以是相对路径。
- logging.path
设置目录,会在该目录下创建 spring.log 文件,并写入日志内容
- 如果只配置 logging.file ,会在项目的当前路径下生成一个 xxx.log 日志文件。
如果只配置 logging.path ,会在log 文件夹生成一个日志文件为 spring.log
示例
logging.file.name=my.log
示例
logging.file.path=/log
注
- 二者不能同时使用,如若同时使用,则只有 logging.file 生效
- 日志文件写入过多容易影响阅读,加载也会过慢,可以对写入的日志文件大小进行限制,对完成日志设置命名格式
示例
#设置滚动日志文件大小
logging.logback.rollingpolicy.max-file-size=1mb
#设置日志文件的命名规则 (这里按每天的日期方式命名)
logging.logback.rollingpolicy.file-name-pattern=log:%d{yyyy-MM-dd}.%i.log
自定义日志配置
- 根据不同的日志系统,你可以按如下规则组织配置文件名,放在 src/main/resources
下面就能被正确加载:
- Logback: logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
- Log4j: log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
- Log4j2: log4j2-spring.xml, log4j2.xml
- JDK (Java Util Logging): logging.properties
- Spring Boot 官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是 logback.xml ),命名为 logback-spring.xml 的日志配置文件, spring boot 可以为它添加一些 spring boot 特有的配置项
- 其他文件名也可以使用logging.config来自定义日志文件
示例
logging.config=classpath:logging-config.xml