前言
SLF4J 不是一个真正的日志实现,而是一个抽象层,它允许你在后台使用任意一个日志类库。
如果一个项目已经使用了log4j,而你加载了一个类库,比方说 Apache Active MQ——它依赖于于另外一个日志类库logback,那么你就需要把它也加载进去。但如果Apache Active MQ使用了SLF4J,你可以继续使用你的日志类库而无需忍受加载和维护一个新的日志框架的痛苦。
除此之外,还有一个SLF4J API的特性是使得我坚持使用SLF4J而抛弃我长期间钟爱的Log4j的理由,是被称为 占位符(place holder)
,在代码中表示为“{}”的特性。
与 log4j
需要导入的jar包:
与 logback
需要导入的jar包,logback-classic.jar、logback-core.jar、slf4j-api.jar
main方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| package cn.xm.exam.test;
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
public class Slf4jTest { private static Logger logger = LoggerFactory.getLogger(Slf4jTest.class);
public static void main(String[] args) {
logger.debug("普通的日志记录");
for (int i = 0; i < 3; i++) { logger.debug("这是第{}条记录", i); }
logger.debug("Set \\{} differs from {}", "3");
logger.debug("两个占位符,可以传两个参数{}----{}", 1, 2);
logger.debug("debug:多个占位符,{},{},{},{}", 1, 2, 3, 4);
logger.info("info:多个占位符,{},{},{},{}", 1, 2, 3, 4);
logger.error("error:多个占位符,{},{},{},{}", 1, 2, 3, 4);
} }
|