Java 使用slf4j记录器记录所有HashMap键和值

Java 使用slf4j记录器记录所有HashMap键和值,java,logging,slf4j,Java,Logging,Slf4j,如何使用slf4j logger记录哈希映射键和值。我已经试过几次了,但还是找到了答案 下面的代码只记录“testvalues”字符串,不记录maps参数的值 public void test(HashMap maps) { logger.info("test values", maps); } 假设您尝试这样在HashMap中迭代 public void printMap(Map mp) { Iterator it = mp.entrySet().iterator

如何使用slf4j logger记录哈希映射键和值。我已经试过几次了,但还是找到了答案

下面的代码只记录“testvalues”字符串,不记录maps参数的值

  public void test(HashMap maps) {
      logger.info("test values", maps);
  }

假设您尝试这样在HashMap中迭代

public void printMap(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        logger.info(pair.getKey() + " = " + pair.getValue());
    }
}

这里有更多的例子和方法。

您的代码正在使用此重载(请参阅)

void信息(字符串消息,对象p0)

在信息级别使用参数记录消息

该重载将把
p0
的字符串表示形式替换为
消息
模板字符串,用表示形式替换第一个替换标记。但是您的邮件中没有任何替换标记

下面是一个快速解决方案:

  public void test(HashMap maps) {
      logger.info("test values {}", maps);
  }
相关问题:


我只想记录所有密钥和值一次,而不是每个密钥和值对记录一次。