我试图在 log4j 消息中强制显示详细信息,而不仅仅是一个字符串。最终我想要这样的东西:
logger.info("组件", "错误码", "错误信息");
我什至可以为组件使用枚举。
然后我希望消息在日志中显示为“时间 - 组件 - 代码 - 消息”
有什么想法吗?
最佳答案
一个非常简单的解决方案(对于这种特殊情况):
logger.info(
String.format("%s - %s - %s", "component", "error code", "error message"));
或改进版本:
logger.info(createMessage("component", "error code", "error message"));
与
public static String createMessage(
String component, String errorCode, String errorMessage) {
return String.format("%s - %s - %s",
"component", "error code", "error message");
}
对于更通用的解决方案,考虑将原始 Logger 类包装到自定义记录器类中,并实现一个 info
方法,该方法采用三个参数并委托(delegate)给 internalLogger.info(String message)
基于输入的新消息。
关于java - Log4j - 强制日志消息参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291399/