java - 使用 slf4j 打印数组只打印第一个元素

标签 java slf4j

我有以下代码:

private static final Logger logger = LoggerFactory.getLogger(Some.class);
...
String[] splits=someString.split("..");
logger.info("The string was split into <{}>",splits); // prints first element

使用 slf4j 打印数组的全部内容的正确方法是什么?

最佳答案

问题在于以下代码

logger.info("The string was split into <{}>", splits);

您正在调用方法 info(String format, Object... arguments) .请注意,最后一个参数是可变参数。因此,您传递的数组被解释为变量参数的每个参数。

但是,在这种情况下,您希望传递一个数组作为第一个参数。一个简单的解决方法是将其转换为 Object

String[] splits = { "foo", "bar" };
logger.info("The string was split into {}", (Object) splits);

将记录 字符串被拆分为 [foo, bar],正如预期的那样。

关于java - 使用 slf4j 打印数组只打印第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589879/

相关文章:

java - 异常 : org. hibernate.HibernateException:当未设置 'hibernate.dialect' 时,对 DialectResolutionInfo 的访问不能为 null

java:如何获取时区缩写(从偏移量)?

CXF 日志响应时间

java - 不同级别的logback不同文件

java - 有理由避免使用 slf4j 吗?

java - 变量重复错误?

java图的邻接矩阵实现

java - 分布式树数据结构

java - 将 logging.properties 文件更改为 Slf4j 中的不同路径

java - 使用 logback,但不知何故 log4j 被初始化