gpt4 book ai didi

Java:如何使用类似日志记录的模式格式化字符串?

转载 作者:行者123 更新时间:2023-11-29 04:50:09 27 4
gpt4 key购买 nike

有时需要使用类似日志记录的模式来组成一个字符串:

Something went wrong, detailA={}, detailB={}

但不是为了记录它,而是为了其他目的(例如通过网络发送)。

有时它会导致代码重复,像这样:

logger.info("Something went wrong, detailA={}, detailB={}", detailA, detailB));

otherSystem.info(String.format("Something went wrong, detailA=%s, detailB=%s",
detailA, detailB);

这非常不方便且容易出错。如何使用日志记录模式和类似日志记录的 API 格式化字符串?

最佳答案

如果你使用slf4j,你可以使用它的MessageFormatter.arrayFormat,它返回一个FormattingTuple

FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray);

然后将其转换为字符串。

String msg = ft.getMessage();

这意味着您可以为此添加一个实用方法

static String format(String format,String...params){
FormattingTuple ft = MessageFormatter.arrayFormat(format,params);
String message = ft.getMessage();
return message;
}

System.out.println(format("hi {}, you {}","there","rock"));

关于Java:如何使用类似日志记录的模式格式化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com