Spring Boot 日志

介绍
Spring Boot 内部所有的日志记录都是通过使用 Commons Logging 实现,同时默认配置也提供了 Java Util Logging、Log4J、Log4J2、Logback 的支持。每种日志都预配置可以使用控制台输出和文件输出。
环境
JDK 8
Maven 3
IntelliJ IDEA 2016
Spring Boot 1.5.2.RELEASE
SLF4J 日志
Spring Boot 启动器中默认已经引入 slf4j 相关的依赖包,使用 slf4j 日志系统不需要再额外声明依赖。
application.yml 示例配置:
logging:
level:
root: WARN
org.springframework: INFO
org.fanlychie: DEBUG
file: demo.log
pattern:
file: “%date{yyyy-MM-dd HH:mm:ss.SSS} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
console: “%date{yyyy-MM-dd HH:mm:ss} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
日志级别
在 Spring Boot 中使用 logging.level.*=TRACE/DEBUG/INFO/WARN/ERROR/FATAL/OFF 来定义日志的级别,根 logger 使用 logging.level.root 来配置。
application.properties 样例:
logging.level.root=WARN
logging.level.org.springframework=INFO
logging.level.org.fanlychie=DEBUG
application.yml 样例:
logging:
level:
root: WARN
org.springframework: INFO
org.fanlychie: DEBUG
文件输出
Spring Boot 默认所有的日志信息只输出到控制台,若要记录到文件需要配置 logging.*:
属性 示例 描述
logging.file demo.log 相对当前的目录,将日志写入该文件
/path/demo.log 具体文件路径,将日志写入到该文件
logging.path logs 相对当前的目录,将 spring.log 文件写入该目录
/path/logs 具体的目录,将 spring.log 文件写入该目录
application.properties 样例:
logging.file=demo.log
application.yml 样例:
logging:
file: demo.log
日志文件大小达到 10M 时,将产生一个新的文件。
日志格式
2017-04-25 17:09:50.285 INFO 10172 — [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: ‘dispatcherServlet’ to [/]
Spring Boot 默认的日志格式:
日期和时间精确到毫秒;
日志级别(TRACE / DEBUG / INFO / WARN / ERROR);
进程 ID;
— 分隔符来区分实际日志消息的开始;
线程名称(包裹在 [] 中,可能会截断输出);
日志名称(通常是源类名并且缩写);
日志消息;
使用 logging.pattern.* 自定义日志格式:
属性 描述
logging.pattern.console 控制台使用的日志格式
logging.pattern.file 文件使用的日志格式
常用的日志信息格式化参数:
参数 描述
%c{length} / %logger{length} 输出所属的类目,通常就是所在类的全名
%d{pattern} / %date{pattern} 输出日志的日期或时间
%F / %file 输出发出日志记录请求的Java源文件的文件名
%L / %line 输出日志事件的发生行号信息
%m / %msg / %message 输出程序代码中指定的消息
%p / %le / %level 输出日志级别信息
%t / %thread 输出产生该日志事件的线程名
%n 输出一个平台的回车换行符
参考文档:https://logback.qos.ch/manual/layouts.html
%logger{length} 如果信息长度大于 length 的值,保留最右边的单词,左边的每个单词只保留第一个字符。
示例 信息 结果
%logger org.fanlychie.DemoService org.fanlychie.DemoService
%logger{0} org.fanlychie.DemoService DemoService
%logger{10} org.fanlychie.DemoService o.f.DemoService
%logger{24} org.fanlychie.DemoService o.fanlychie.DemoService
%logger{100} org.fanlychie.DemoService org.fanlychie.DemoService
宽度和对齐方式控制,还是以 %logger 为例:
示例 描述
%50logger 右对齐,最小的宽度是50,长度不足50则左补空格,长度超出50则原样输出
%-50logger - 表示向左对齐,最小的宽度是50,长度不足50则右补空格,长度超出50则原样输出
%.20logger 左对齐,最大的宽度是20,如果长度超出20,将左边多出的字符直接丢掉
%30.50logger 最小宽度是30,如果长度不足30则左补空格右对齐;如果长度超出30且不足50则左对齐;如果长度超出50则将左边多出的字符直接丢掉
application.properties 样例:
logging.pattern.file=”%date{yyyy-MM-dd HH:mm:ss.SSS} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
logging.pattern.console=”%date{yyyy-MM-dd HH:mm:ss} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
application.yml 样例:
logging:
pattern:
file: “%date{yyyy-MM-dd HH:mm:ss.SSS} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
console: “%date{yyyy-MM-dd HH:mm:ss} -%5level [%15.15thread] %-40.40logger{39} : %msg%n”
Logback 日志
Logback 是 Log4j 的改良版,它比 Log4j 拥有更多的特性,同时性能方面也有很大的提升。
使用时不需要声明额外的其他依赖,直接在类路径的根目录下创建 logback.xml:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值