SLFJ简介与使用教程

SLF4J

SLF4J(SimpleLogging Facade for Java) 是一个通用的日志框架,相当于日志框架中的一套规范,有时候我们希望在开发的时候不理会具体的框架,而在程序部署的时候再来选择具体的日志实现,这时候,我们可以考虑使用SLF4J,使用SLF4J开发的程序,在部署时可以选择以下日志框架中的任意一种:

1、        log4J

2、        java.util.logging

3、        nop

4、        slf4j-simple

5、        jcl(Jakarta commons logging)

 

下面我介绍一下常见的两种搭配:SLF4J+Log4J和SLF4J+JCL

 

一、下面先演示一下:SLF4J+Log4J

 1.1、需要的配置文件和组件包

下面三个 jar文件和一个 properties文件都是要放在项目的 ClassPath上。 

1. slf4j-api-1.7.5.jar 
slf4j的抽象包,类似于接口】
2. slf4j-log4j12-1.5.11.jar 
【适配器包,告诉slf4j日志的具体实现组件是谁】
3. log4j-1.2.15.jar 
【日志实现包:log4j
4. log4j.properties(
也可以是 log4j.xml,本例中用 log4j.propertes)log4j的配置文件】

 

1.2log4j.properties

log4j.rootLogger=DEBUG,A1

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%-4r%-5p[%t]%3x-%m%n%d{yyyy-MM-ddHH\:mm\:ss}%l

 

1.3、使用 SLF4J 的代码:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

publicclass SLFJTest {

   privatestaticfinal Loggerlogger = LoggerFactory.getLogger(SLFJTest.class);

  

   publicstaticvoid main(String[] args) {

      //SLF4J是支持参数化的,用{}表示参数

      logger.info("this is debug {}-{}","中国","你好");

   }

}

 

1.4、执行它,控制台输出: 


0    INFO  [main]     - this is debug中国-你好

 2014-05-04 16:35:55 com.camelotchina.slfj.SLFJTest.main(SLFJTest.java:11)

 

二、演示一下SLF4J+JCL(Java Commons logging)

1.1、需要的包

1. slf4j-api-1.7.5.jar slf4j的抽象包,类似于接口】
2. slf4j-jcl-1.6.0.jar 
【适配器包,告诉slf4j日志的具体实现组件是谁】
3. Commons-logging-1.1.3.jar 
【日志实现包:apachecommons-logging

1.2、SLF4J代码

这个代码跟SLF4J+Log4J的是一样的

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

 

publicclass SLFJTest {

   privatestaticfinal Loggerlogger = LoggerFactory.getLogger(SLFJTest.class);

  

   publicstaticvoid main(String[] args) {

       //SLF4J是支持参数化的,用{}表示参数

      logger.info("this is debug {}-{}","中国","你好");

   }

}

1.3、输出

2014-5-4 16:55:51 com.camelotchina.slfj.SLFJTest info

信息: this is debug中国-你好

 

从上面的演示中我们就可以体会到使用SLF4J的好处了,那就是,不管你底层的日志实现是什么组件,是log4j还是java.util.logging、还是logback,都不要紧,如果你采用SLF4J,那么,一旦你底层的日志组件改变,只需要在适配器包之间进行切换即可,代码是不需要做任何改变的。类似于面向接口编程了。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用@Slf4j注解,你需要在Maven项目中添加以下依赖: 引用: ```xml <!-- log --> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> <!--<scope>test</scope>--> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency> ``` 引用: ```xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency> ``` 引用: 首先,确保IDEA中已安装Lombok插件。从IntelliJ IDEA 2020.3版本开始,Lombok插件已内置于IDEA中,所以不需要再安装插件。然后,在项目中添加Lombok依赖即可使用。Lombok插件中包含@Slf4j注解,它会被编译成以下代码: ```java private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(this.XXX.class); ``` 因此,为了使用@Slf4j注解,你需要在Maven项目中引入slf4j-api、slf4j-log4j12和lombok的依赖。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值