java sl4j 日志_浅谈Java slf4j日志简单理解

一、理解

slf4j(Simple Logging Facade for Java),表示为java提供的简单日志门面,更底层一点说就是接口。通过将程序中的信息导入到日志系统并记录,实现程序和日志系统的解耦

日志门面接口本身通常并没有实际的日志输出能力,它底层还是需要去调用具体的日志框架API的,也就是实际上它需要跟具体的日志框架结合使用。由于具体日志框架比较多,而且互相也大都不兼容,日志门面接口要想实现与任意日志框架结合可能需要对应的桥接器,就好像JDBC与各种不同的数据库之间的结合需要对应的JDBC驱动一样。

1. 日志门面(Facade)

1.slf4j(推荐)

2.commons-logging

2. slf4j连接具体的日志

slf4j和其它日志框架连接的时候,中间需要一个桥接器。有的日志框架本身就使用了slf4j的api,则不需要使用桥接器.

logback是log4j的改良版,且内部直接使用了slf4j的api,所以不用桥接器。(logback和slf4j据说是出自同一个作者)

1.slf4j-api.jar > slf4j-log4j12.jar桥接器 > log4j.jar

2.slf4j-api.jar > logback-core.jar,logback-classic.jar

3.slf4j-api.jar > slf4j-simple.jar

4.slf4j-api.jar > log4j-slf4j-impl-2.8.2.jar > org.apache.logging.log4j:log4j-api:2.8.2,org.apache.logging.log4j:log4j-core:2.8.2,org.apache.logging.log4j:log4j-web:2.8.2 (推荐使用 log4j2)

二、使用 slf4j+log4j2

log4j2.xml

放在resources目录下

${web:rootDir}/logs

filePattern="${log.path}/error-%d{yyyy-MM-dd_HH-mm}.log">

filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz">

LogTest.java

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class LogTest {

public final Logger logger=LoggerFactory.getLogger(getClass());

public static void main(String[] args) {

log.trace("trace");

log.debug("debug");

log.warn("warn");

log.info("info");

log.error("error");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
slf4j (Simple Logging Facade for Java) 是一个 Java 日志框架的抽象层,它提供了一种简单的方式来使用多种不同的日志框架,如 log4j, java.util.logging(JUL)等。slf4j 通过提供一套通用的接口,使得开发者可以在不同的环境下使用不同的日志实现,而不需要改变代码。 LoggerFactory 是 slf4j 框架中的一个类,它提供了获取 Logger 实例的方法。LoggerFactory 是一个抽象的工厂类,它可以根据当前的日志实现,返回相应的 Logger 实例。 使用 LoggerFactory 获取 Logger 实例的代码如下: ``` import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class); public void myMethod() { LOGGER.debug("Debug log message"); LOGGER.info("Info log message"); LOGGER.warn("Warn log message"); LOGGER.error("Error log message"); } } ``` 上述代码中,首先导入了 slf4j 的 Logger 和 LoggerFactory 类。然后在 MyClass 类中,通过 LoggerFactory.getLogger(MyClass.class) 方法获取了一个 Logger 实例,该实例的名称为 MyClass。在 myMethod() 方法中,使用该 Logger 实例打印了不同级别的日志信息。 需要注意的是,LoggerFactory.getLogger() 方法的参数应该传入当前类的 Class 对象,这样可以方便地标识出日志的来源。另外,LoggerFactory.getLogger() 方法返回的 Logger 实例是线程安全的,可以在不同的线程中共享使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值