使用slf4j Logger记录所有HashMap键和值

My *_*tek -1 java logging slf4j

如何使用slf4j记录器记录HashMap键和值。我已经尝试了几次,但还是想出了办法。

以下代码仅记录“ test values”字符串,不包含maps参数的值。

  public void test(HashMap maps) {
      logger.info("test values", maps);
  }
Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 5

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

void info(String message, Object p0)

在信息级别记录带有参数的消息。

即超载将替代的字符串表示p0message模板字符串,与表示更换第一替代标记。但是您的消息中没有任何替代标记!

快速解决方法:

  public void test(HashMap maps) {
      logger.info("test values {}", maps);
  }
Run Code Online (Sandbox Code Playgroud)

相关问题:


Raj*_*ndu 2

假设您尝试像这样在 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

这篇文章中有更多示例和方法。

  • 我只想记录所有键和值一次,而不是每个键和值对记录一次。 (2认同)