[TOC]
slf4j 类 描述:Slf4j 类是一个简单打印日志的工具,任何一个日志类库。但是不是一个日志的实现而是一个抽象层,允许在后台使用任何一个日志类库。
Slf4j特点:
1.使得日志独立于任何一个特定的日志实现,意味着不需要管理多个日志配置或者多个日志类库,因为提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。
2.补充了log4j没有支持的输出打印方式,SLF4J支持{}作为占位符,等价于C语言中的%s,而不必再进行字符串的拼接节省字符串的内存消耗。
3.因为 String 字符串的拼接会使用 StringBuilder 的 append()方式,有一定的性能损耗。使用占位符仅是替换动作,可以有效提升性能
4.使用指定类初始化日志对象,在日志输出的时候可以打印出日志信息所在类
5.每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。
[TOC]
slf4j 类 描述:Slf4j 类是一个简单打印日志的工具,任何一个日志类库。但是不是一个日志的实现而是一个抽象层,允许在后台使用任何一个日志类库。
Slf4j特点:
1.使得日志独立于任何一个特定的日志实现,意味着不需要管理多个日志配置或者多个日志类库,因为提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。
2.补充了log4j没有支持的输出打印方式,SLF4J支持{}作为占位符,等价于C语言中的%s,而不必再进行字符串的拼接节省字符串的内存消耗。
3.因为 String 字符串的拼接会使用 StringBuilder 的 append()方式,有一定的性能损耗。使用占位符仅是替换动作,可以有效提升性能
4.使用指定类初始化日志对象,在日志输出的时候可以打印出日志信息所在类
5.每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。
1 2 3 4 5 6 7 8 A:off 最高等级,用于关闭所有日志记录。 B:fatal 指出每个严重的错误事件将会导致应用程序的退出。 C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。 D:warm 表明会出现潜在的错误情形。 E:info 一般和在粗粒度级别上,强调应用程序的运行全程。 F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。 G:all 最低等级,用于打开所有日志记录。
LoggerFactory类说明:
getLogger()-获取日志对象
getILoggerFactory()-获取真实的日志工厂
performInitialization()-初始化日志操作
singleImplementationSanityCheck()-特定类存在判断
bind()-绑定获取真实的日志处理类
基础使用实例:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import org.slf4j.Logger;import org.slf4j.LoggerFactory;private final static Logger logger = LoggerFactory.getLogger(xxxController.class); logger.debug("Processing trade with id: {} and symbol: {}" , id, symbol); logger.info("支付开始-学校id{},用户openId{},支付订单号{},总金额{},订单号List{}" ,schoolId, openId, zfddh, total, orderNumList); logger.error(throwable.getMessage(), throwable); 2019 -06 -24 18 :45 :49.348 INFO 7308 --- [bio-8080 -exec-8 ] c.x.p.m.v.controller.VoteController : missing parameter