java - Log4j - 强制日志消息参数

标签 java log4j

我试图在 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/

相关文章:

java - LibGDX - 居中正交相机

java - 我怎样才能避免运行我的第一个 Android 应用程序时发生的错误?

linux - 解析log4j和Java异常日志

java - 使用 FOP 时禁用 Log4j INFO 级别日志记录

java - 为应用程序中的所有线程设置 ThreadContext

hibernate - 使用 Hibernate,catalina.out 的大小迅速增加

java - 为什么 Java 引用在这个程序中没有像预期的那样工作

java - 无论焦点是什么 JComponent,如何为 JFrame 进行键绑定(bind)?

generics - 如何在 Kotlin 中指定递归泛型参数?

java - 从字符串中提取特定匹配的子字符串