有没有办法在 Log4j 日志消息中显示用户数据?

Is there any way to show user data in Log4j logging message?

我知道,问题看起来有点混乱。让我详细解释一下。

我有一些数据想在 Logger 中与用户消息一起显示。

例如。 log4j.appender.filer.layout.ConversionPattern=%-5p %d{yyyyddMM-HH:mm:ss} %m%n
控制台: WARN 20162208-18:34:35 测试信息

这是我在 Log4j.properties 文件中设置的模式,效果非常好。

现在当我想在此模式中添加一些用户数据时出现问题。该用户数据将是从用户输入中获取的一些值。在用户数据之后,控制台应该看起来像这样:
控制台: WARN User_data 20162208-18:34:35 测试信息

所以我的问题是,我们可以 set/send 记录器模式中的用户数据吗?

我见过一些用户扩展 Appender class 并覆盖 append() 方法的示例。但我正在寻找一些不同的方法。

要在记录器条目中动态放置上下文数据,请使用 Log4j 中的 MDC 功能。

这是一个例子:

// JAVA CODE
org.apache.log4j.MDC.put("User_data", "this is my user data");

// Log4j Pattern
%X{User_data}