4
private static final Logger LOGGER = LoggerFactory.getLogger(Updater.class);

我正在使用SLF4JLogback

当我尝试记录语句时

LOGGER.info("{}:{}:{}", one, two, three)

它说

cannot find symbol method info(java.lang.String,java.lang.String,java.lang.String,java.lang.String)

有没有什么办法可以在一个info语句中记录两个以上的变量?

4

3 回答 3

9

您必须将 SLF4J 升级到包含Logger.info(java.lang.String, java.lang.Object...)可变参数方法的 1.7。请参阅错误 31 -经过六年的讨论后修复的 Logger 方法的 Varargs 。

在 1.7 之前,Object[]如果您使用两个以上的参数,则必须将参数括起来:

LOGGER.info("{}:{}:{}", new Object[] {one, two, three})

也可以看看

于 2012-10-18T20:29:17.927 回答
1

您可能使用的是旧版本的 slf4j。

在以前的版本中,您最多只能以这种方式记录 2 个参数,但新版本可以采用任意数量的参数

于 2012-10-18T20:28:54.927 回答
0

根据Logger 的JavaDoc,您可以使用以下任一方法,

  void  info(String format, Object... arguments)
  void  info(String format, Object arg)
  void  info(String format, Object arg1, Object arg2)
于 2012-10-18T20:30:16.993 回答