zoukankan      html  css  js  c++  java
  • java中的log

    slf4j

    slf4j的全称是:  Simple Logging Facade for Java (SLF4J)。

    slf4j的官方网站:http://www.slf4j.org

    简介

    SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。

    实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

    如果我们在开发一个公共类库,那么应该使用slf4j。因为别的应用使用我们的类库时,不能强制指定应该使用哪个日志系统。不能影响最终用户使用哪种日志系统。如果我们开发的是一个简单的独立的应用,比较确定使用哪种日志系统。这时候就没必要使用slf4j了。

    使用

    slf4j提供了一种对各种日志的抽象,允许我们在代码中只使用这种抽象的接口。具体的实现,是在运行时进行绑定的。

    要想使用slf4j,需要在项目中引用包:slf4j-api-1.7.7.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");
     
    }
    }

    上面的helloworld中有2个接口:Logger和LoggerFactory。这2个接口是slf4j提供的一种抽象。

    如果运行上面的helloworld,控制台会输出:

    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.
    因为,我们还没有为slf4j绑定一种具体的日志实现。
    在项目中引用slf4j-simple-1.7.7.jar。再运行slf4j,可以看到有输出日志了。
     
     
    slf4j支持多种日志框架。
    slf4j-log4j12-1.7.7.jar
    slf4j-jdk14-1.7.7.jar
    slf4j-nop-1.7.7.jar
    slf4j-simple-1.7.7.jar
    slf4j-jcl-1.7.7.jar

     

    concrete-bindings

  • 相关阅读:
    ORACLE 查看进程数,已执行任务数, 剩余任务数,删除指定任务
    ORACLE 收集统计整个用户数据
    解决Hystrix dashboard Turbine 一直 Loading…… 及其他坑
    利用 Maven 构造 Spring Cloud 微服务架构 模块使用 spring Boot构建
    AES加解密
    JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案
    JAVA 文件的上传下载
    shell启停服务脚本模板
    JAVA 设计模式之 原型模式详解
    JAVA 设计模式之 工厂模式详解
  • 原文地址:https://www.cnblogs.com/leiwei/p/3719318.html
Copyright © 2011-2022 走看看