Spring Boot-日志配置

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util LoggingLog4JLog4J2Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

 

格式化日志

默认的日志输出如下:

2016-04-13 08:23:50.120  INFO 37397 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.11.Final}

输出内容元素具体如下:

  • 时间日期 — 精确到毫秒
  • 日志级别 — ERROR, WARN, INFO, DEBUG or TRACE
  • 进程ID
  • 分隔符 — --- 标识实际日志的开始
  • 线程名 — 方括号括起来(可能会截断控制台输出)
  • Logger名 — 通常使用源代码的类名
  • 日志内容

 

级别控制

默认情况下,INFO级别以上的信息才会打印到控制台,可以自己设定日志输出级别,只需在application.properties中进行配置完成日志记录的级别控制。

配置格式:logging.level.*=LEVEL

  • logging.level:日志级别控制前缀,*为包名或Logger名
  • LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

举例:

logging.level.root=WARN:root日志以WARN级别输出
#org包下的日志级别
logging.level.org=warn
logging.level.com.yang=debug

指定默认的级别是warn,但是包名是org开头的类,日志级别是WARN,org包名的类大多是是第三方依赖的库,有时候没必要显示INFO级别的信息,com.yang开头的类使用debug级别。

 

文件输出

Spring Boot默认并没有输出日志到文件,若要增加文件输出,需要在application.properties中配置logging.filelogging.path属性。

#设置文件,可以是绝对路径,也可以是相对路径。如:
logging.file=my.log
#设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:
logging.path=/var/log

日志文件会在10Mb大小的时候被截断,产生新的日志文件,默认级别为:ERROR、WARN、INFO

 

自定义输出格式

Spring Boot支持对控制台日志输出和文件输出进行格式控制,代码如下:


logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %m%n

logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %m%n

pattern简单说明:

%d{HH:mm:ss.SSS}——日志输出时间

%thread——输出日志的进程名字,方括号括起来。这个信息在Web应用以及异步任务处理中很有用。

%-5level——日志级别,并且使用5个字符靠左对齐

%logger{n}——日志输出者的名字,包名+类名,{n}限定了输出长度,如果长度不够,尽可能显示类名压缩包名。

%m——日志消息

%n——平台的换行符

%M——日志发生时的方法名

%L——日志发生时所在的代码行

 

多彩输出

如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在application.properties中设置spring.output.ansi.enabled参数来支持。

  • NEVER:禁用ANSI-colored输出(默认项)
  • DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
  • ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值