我们现有的日志框架有许多,例如:UCL,JUL,jboss-logging,logback,log4j,slf4j等等。
Spring Boot默认选用slf4j和logback,在pom.xml中我们选择层级关系表,可以看到相关的jar包。
我们使用slf4j来介绍以下它的用法,我们创建一个Logger对象,然后调用它的几个常见方法来看看。
然后我们运行测试方法,发现它只打印三个,分别是info,warn和error,为什么trace和debug没有打印呢?
我们去相关jar包查看一下。
然后往下滑动,可以看到有一个class文件叫做log的等级,我们点进去。
我们去看看它的级别关系。
可以发现它的级别关系是这样的。
TRACE< DEBUG< INFO<WARN< ERROR< FATAL<OFF
可以发现比INFO等级小的没有打印,与INFO等级相等或者比INFO等级高的就打印了相关信息。
这个日志框架默认的level选用的是INFO,我们也可以将其更改,还是prefix+属性名的操作(之前章节讲过如何找到prefix+属性名的位置,想学的童鞋可以翻阅)。
我们现在把级别定到了warn(配置文件中写法是loggin.level.+主配置类包名=[value])。
然后我们再次运行测试方法。
可以发现INFO也不打印了,说明我们配置的的确没有问题。
可以通过配置文件将日志信息存储到文件中logging.file=springboot.log存储到了项目的根目录中。
也可以指定具体的日志路径:logging.file=D:/springboot.log。
也可以存储到一个文件夹中,logging.path=D:/log/,并且默认的文件名是spring.log。
我们可以指定日志显示格式(同样在配置文件中配置):
a.日志显示在console中
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
( %d:日期时间,%thread:线程名, %-5level: 显示日志级别,-5表示从左显示5个字符宽度,%logger{50} :设置日志长度 ,例如o.s.w.s.m.m.a.,%msg:日志消息,%n :回车)
b.日志显示在文件中
logging.pattern.file=%d{yyyy-MM-dd} ** [%thread] ** %-5level ** %logger{50}** %msg%n (**是为了打印区分,可以不写)
关注博主,更多精彩哦!