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修饰用于避免对象运行时被修饰
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


