Java的简单日志记录外观(SLF4J)充当各种日志记录框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署 时插入所需的日志记录框架。
具体实现:
导入依赖后测试:
会报错
SLF4J默认是NOP的logger,就是不对任何进行处理,我们在使用SLF4J的时候要配合其他的真正的log管理应用来实现。例如:log4j,logback。
改进一下:
加入logback依赖
日志打印成功
总结:SLF4J回去先去找这个实现,如果找到的话,就会把对应的东西给记录下来,这时候日志记录在命令行里面了 。但是trace没有被记录下来。
怎么把trace给记录下来呢?
这是跟你具体实现的日志记录框架的配置有关的,log4j和logback都有自己的配置文件,所以要修改他们的配置文件,通过配置文件可以是哪些隔离级别给记录下来
示例:给logback日志系统添加xml的配置信息
打印结果:
appender是指定打印的日志存放在哪个地方,例如:控制台,文件
root是设置它打印的最小日志级别,如果root-level是trace,那么可以打印所有的日志信息
关于encoder 它是表示把日志记录成什么样的格式。
记录下来当前日志的时间,{}里面是时间的格式
是哪个线程
-是左对齐,level是哪个级别
是哪个logger,就是loggerfactory.getlogger()里面的值,就是log的名字
输出我们提供的信息
在logback的1.2.3版本中,它自己就支持SLF4J的API,所以SLF4J的依赖可以注释掉,在使用的时候用SLF4J的API,不要用logback的API
小知识点:
第一个参数里面的大括号,可以通过,后面的参数一个一个填到{}里面
slf4j的日志级别分为五种
info、debug、error、warn、trace
常用的是这是三个。
-
info 一般处理业务逻辑的时候使用,就跟
system.err打印一样,用于说明此处是干什么的。slf4j使用的时候是可以动态的传参的,使用占位符 {}
。后边一次加参数,会挨个对应进去。 -
debug: 一般放于程序的某个关键点的地方,用于打印一个变量值或者一个方法返回的信息之类的信息
-
error: 用户程序报错,必须解决的时候使用此级别打印日志。
不常用的有:
-
warn:警告,不会影响程序的运行,但是值得注意。
-
trace: 默认情况下在日志里边也不会打印出来,最低的一个日志级别。