【问题标题】:Is there any way to show user data in Log4j logging message?有什么方法可以在 Log4j 日志消息中显示用户数据?
【发布时间】:2016-08-22 13:12:05
【问题描述】:

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

我有一些数据,我想每次都在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 测试信息

所以我的问题是,我们可以在记录器模式中设置/发送用户数据吗?

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

【问题讨论】:

  • 你希望用户数据在每一个日志中吗?
  • @TAsk 是的!没错。。

标签: java logging log4j customization


【解决方案1】:

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

这是一个例子:

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

// Log4j Pattern
%X{User_data}

【讨论】:

  • 感谢您的建议!!但是不可能将数据保存在环境变量中,因为数据是从用户在运行时提供的用户输入中获取的。
  • 我修改了在记录器条目中显示动态数据的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多