• 日志组件slf4j+logback+lombok使用实例


    一、Slf4j

    Java 日志组件, SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。

    1.1 Maven依赖

    这里推荐一下,鲁班大叔开发的 Maven 依赖版本在线查询 http://mvn.coderead.cn/

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

    1.7.32 版本的发布时间是 2021-07-20

    1.2 代码示例

    package com.ziyu.example;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class Main {
    
        private final static Logger log = LoggerFactory.getLogger(Main.class);
    
        public static void main(String[] args) {
            log.info("Hello World");
        }
    }
    

    1.3 存在问题

    如果只是单独引用 slf4j-api,运行以上 main 函数时,会出现以下警告:

    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 没有找到具体的 Logger 实现。

    二、logback

    Logback是由log4j创始人设计的一个开源日志组件。logback当前分成三个模块:logback-corelogback-classiclogback-access

    • logback-core 是其它两个模块的基础模块。
    • logback-classic 是log4j的一个改良版本。

    我们这里的实例使用到 logback-classic

    2.1 Maven依赖

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.6</version>
    </dependency>
    

    1.2.6 版本的发布时间是 2021-09-10

    • logback-classic 还依赖 logback-coreslf4j-api

    2.2 打印结果

    还拿 1.2 代码示例 的代码运行,打印日志如下:

    14:26:05.990 [main] INFO com.ziyu.example.Main - Hello World
    

    三、lombok

    Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 这样的方法以及以往用来分类各种 accessor 和 mutator 的大量时间。

    3.1 Maven依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
    </dependency>
    

    1.18.22 发布时间是 2021-10-07
    1.18.20 发布时间是 2021-04-02

    3.2 代码示例

    如果使用 lombok,你需要在 IDEA 中装一个插件,图标是个小辣椒,这样你的代码就不会飘红了:

    1.2 代码示例 的代码就可以修改为以下代码了:

    package com.ziyu.example;
    
    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class Main {
    
        public static void main(String[] args) {
            log.info("Hello World");
        }
    }
    

    四、代码片段

    为了方便自己写 Demo 时,快速使用日志框架,所以就把代码片段放在了这边:

    4.1 Maven依赖 slf4j+lombok+logback

    <properties>
        <slf4j.version>1.7.32</slf4j.version>
        <lombok.version>1.18.20</lombok.version>
        <logback.version>1.2.6</logback.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
    </dependencies>
    

    4.2 logback.xml

    可以在 src\main\resources 添加 logback.xml 自定义日志配置:

    4.2.1 简单打印到控制台

    以下配置可以打印日志信息到控制台:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
      </appender>
    
      <root level="info">
        <appender-ref ref="STDOUT"/>
      </root>
    </configuration>
    

    4.2.2 更多日志

    参考文档《SpringBoot整合Slf4j+logback日志框架》

  • 相关阅读:
    UIWebView 获取当前的javascript上下文,并js,oc互调
    socket.io emit 常见用法
    ubuntu nginx 安装 certbot(letsencrypt)
    vi 常用命令
    html5 的缓存应用 manifest="filename.appcache"
    swift 与 指针初级使用
    xcode7,ios9 部分兼容设置
    xampp 修改mysql 密码
    mac下xampp简单虚拟主机配置
    Python学习笔记之六:在VS中调用Python
  • 原文地址:https://www.cnblogs.com/kendoziyu/p/15572311.html
Copyright © 2020-2023  润新知