问题描述
(显然)我对String.format()
和MessageText.format()
都很熟悉-我也了解Slf4j
日志记录中使用的字符串格式语法;令人沮丧的是它们都是不同且不兼容的。
我要寻找的是类似MessageText.format()
的函数,该函数与slf4j记录器的格式化程序完全一样,因此我可以在日志消息和(例如)异常消息中使用相同的String常量:
public static String THIS_HAPPENED =
"Unfortunately,foo was {},but bar ({}) was not";
// ...
if (somedisaster(foo,bar)) {
log.error(THIS_HAPPENED,foo,bar);
throw new IllegalStateException(MessageText.betterFormat(THIS_HAPPENED,bar));
}
不幸的是,MessageText
需要位置说明符({0}
),Slf4j对此非常讨厌。
这里有东西吗?
(显然,很明显!我可以自己编写该方法,但是如果编码员已经比我更好地完成了该方法,那么我会很乐意使用它)。
非常感谢。
解决方法
尝试:
switch-case
您有:
if-else