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)
您的代码正在使用此重载(请参阅javadoc)
void info(String message, Object p0)在信息级别记录带有参数的消息。
即超载将替代的字符串表示p0到message模板字符串,与表示更换第一替代标记。但是您的消息中没有任何替代标记!
快速解决方法:
public void test(HashMap maps) {
logger.info("test values {}", maps);
}
Run Code Online (Sandbox Code Playgroud)
相关问题:
假设您尝试像这样在 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)
这篇文章中有更多示例和方法。