SELF4J 文档学习笔记

本文是SELF4J文档的学习笔记,详细介绍了如何使用SELF4J与各种日志系统集成,包括简单的使用方法、配置不同日志系统的步骤,如NOP、simple、log4j、logback-classic、java.util.logging和jcl。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELF4J 文档学习笔记

参考官方文档:http://www.slf4j.org/manual.html

1 简单介绍

SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。
SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,每个与具体日志系统对应的jar包都有一个org.slf4j.impl.StaticLoggerBinder的实现,不同的实现返回与该日志系统对应的LoggerFactory,因此就实现了所谓的静态绑定,达到只要选取不同jar包就能简单灵活配置的目的。

2 使用LOG4J

使用SELF4J需要在classpath中加入slf4j-api-1.7.14.jar
绑定到具体日志系统还需要加入相应的连接jar和具体日志系统jar

2.1 简单使用

我们在classpath中加入slf4j-api-1.7.14.jar
运行如下程序:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

屏幕上会有如下警告,这是因为没有绑定到具体日志系统

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我们在classpath中加入slf4j-simple-1.7.14.jar
再次运行上述项目可以输出如下结果

0 [main] INFO HelloWorld - Hello World

2.2 常用代码

1、常用声明

//类的logger:ClassName为本类名称(其实默认带了包名)
static final Logger logger = LoggerFactory.getLogger(ClassName.class);
//自定义logger:LoggerName为用户自定义名称(没有包名一说)
static final Logger logger = LoggerFactory.getLogger(LoggerName);

2、常用方法

logger.error("some error.");
logger.warn("some warn.");
logger.info("some info.");
logger.debug("some debug.");

3、常用占位符

//大括号{}表示占位符
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);

3 各日志系统jar的配置

3.1 self4j的配置

加入slf4j-api-1.7.14.jar文件

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.14</version>
</dependency>

3.2 绑定到具体日志系统

3.2.1 NOP:no-operation

加入 slf4j-nop-1.7.14.jar

不做任何操作,忽略所有log操作

3.2.2 simple

加入 slf4j-simple-1.7.14.jar

所有info及以上级别的log用System.err输出,仅适用于小型项目

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.14</version>
</dependency>
3.2.3 log4j

加入 slf4j-log4j12-1.7.14.jar
加入 log4j-1.2.x.jar

MAVEN 中只需配置slf4j-log4j12-1.7.14.jar,而log4j-1.2.17.jar 和 slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。

<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.14</version>
</dependency>
3.2.4 logback-classic

加入 logback-classic-1.0.13.jar
加入 logback-core-1.0.13.jar

MAVEN 中只需配置logback-classic-1.0.13.jar,而logback-core-1.0.13 和 slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。

<dependency> 
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.0.13</version>
</dependency>
3.2.5 java.util.logging

加入 slf4j-jdk14-1.7.14.jar

MAVEN 中只需配置slf4j-jdk14-1.7.14.jar,而slf4j-api-1.7.14.jar 会自动下载,当然显示配置也可以。

<dependency> 
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-jdk14</artifactId>
  <version>1.7.14</version>
</dependency>
3.2.6 jcl:Jakarta Commons Logging

slf4j-jcl-1.7.14.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值