本文共 1074 字,大约阅读时间需要 3 分钟。
作为一个日志标准,slf4j(Simple Logging Facade for Java)并非真正的日志实现,而是一个抽象层。其设计初衷是为了允许开发者灵活选择日志框架,例如log4j2,从而统一日志处理流程。
在使用log4j2前,需要配置自定义的log4j2.xml
文件。这个文件是日志框架的核心配置文件,决定了日志输出格式、存储位置及级别管理等功能。
log4j2支持多种日志格式模式,最常见的是使用与printf格式类似的占位符。以下是常见的格式示例:
%d{yyy-MM-dd HH:mm:ss}
:日期时间格式,默认输出为"2002-10-18 22:10:28"。%L
:记录日志事件的代码位置,如“com.example.MyClass.java:45”。%c
:日志类别全称,如“com.example.MyClass”。%m
:日志信息内容。%p
:日志优先级,依次从低到高为:TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF。在log4j2中,通过appender(输出目的地)指定日志的存储位置或输出渠道。常用的appender类型包括:
log4j2定义了8个日志级别,按优先级从低到高依次为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
。
根据设定的日志级别,程序会自动过滤日志输出。设级别为"INFO"时,只会记录INFO及更高级别的日志。
slf4j的局限性在于其日志打印方式的设计。其优势体现在两个方面:
格式化输出,避免字符串拼接
使用slf4j的格式化字符串,直接将变量代入日志内容中,无需手动拼接字符串。logger.info("Set score {} for Person {} ok.", score, p.getName());
灵活性高,适配多种日志框架
slf4j本身不带日志实现,可以通过桥接(Facade Pattern)将其与其他日志框架(如Log4j2、JBoss.log、SLF4E等)集成,实现统一日志管理。转载地址:http://altiz.baihongyu.com/