log4j和slf4j的区别简介说明
下文笔者讲述log4j和slf4j的区别说明,如下所示:
log4j和slf4j区别
log4j(log for java)(4 同 for) log4j是Apache的一个开源项目 用于记录日志信息 我们可以通过Log4j的配置文件灵活配置日志的 记录格式、记录级别、输出格式,而不需要修改已有的日志记录代码 --------------------------------------------------------------------------------- slf4j:(simple log facade for java)通常我们称之为“日志门面” slf4j不是日志解决方案,他自身不具有日志的功能 它需借助其它的日志框架,然后实现日志的功能
slf4j的优点
一、使日志和项目解耦 例:以前项目中使用log4j作为日志库, 但今天我看见了一个更牛的日志框架logback 我们只需进行简单的配置,即可使日志框架使用logback, 这就是slf4j的优点 二、两者对内存的节约程度不同 log4j传统的日志系统中并没有占位符的概念 打印日志时,都使用String对象输出 而slf4j则采用占位符的方式,这种方式更节约内存 private void log4jTest(){ String errormsg = "这是一个错误信息..."; logger.info("错误信息为:"+errormsg); } private void slf4jTest(){ logger.info("错误信息为:{}","这是一个错误信息..."); }
项目中使用slf4j的方法
pom文件中引入相应的jar包 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.13</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.13</version> </dependency> 或引入 <!-- 引入log4j日志依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency> 2.类中使用LogFactory创建类的log对象 public class logTest{ private static final Logger logger = LoggerFactory.getLogger(Test.class); private void slf4jTest(){ logger.info("信息{}","slf4j使用") } }
注意事项: 1.使用static、final关键字来对日志对象进行修饰。 2.使用private修饰防止其它类使用当前类的日志对象 3.static用于保证类中只存在一份信息,日志对象属于类,不属于具体的实例 4.final修饰用于避免对象运行时被修饰
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。