Hutool日志组件配合testng+slf4j的简单使用

发布时间 2023-10-26 17:42:25作者: 青索

Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,地址是https://hutool.cn/

具体的用法和api文档在页面上有,就不赘述了,这里只分享在使用testng做单元测试时Hutool-log的简单使用,文档上写得比较简陋,也不太好理解

首先是依赖,testng和Hutool

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>7.7.1</version>
    </dependency>
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.8.22</version>
    </dependency>

 

既然是简单使用,自然是用最简单的静态调用,连类似于

private static final Log log = LogFactory.get();

的声明都不需要,直接以SLF4J的风格调用

  @Test
  void test2(){
    StaticLog.info("这是一个{}日志", "测试");
  }

 接下来要通过slf4j的配置文件来控制输出,首先添加配置文件logback.xml

<?xml version="1.0" encoding="utf-8"?>

<configuration scan="false">
  <property name="format" value="%d{HH:mm:ss.SSS} [%thread] %-5level %c:%L- %msg%n" />

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoder 默认配置为PatternLayoutEncoder -->
    <encoder>
      <pattern>${format}</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>

</configuration>

然后添加依赖

      <dependency>
        <groupId> org.apache.cassandra</groupId>
        <artifactId>cassandra-all</artifactId>
        <version>3.0.26</version>

        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
        </exclusions>

      </dependency>

这是slf4j官网建议的依赖,添加好后不用再管,如果不添加的话,配置文件将无效

然后修改代码

  @Test
  void test2(){
    StaticLog.debug("这是一个{}日志", "debug");
    StaticLog.info("这是一个{}日志", "info");
  }

执行

 如图,结果只显示了info等级的日志,没有显示info,与配置文件描述一致