我需要在每个 LoggingEvent(或 log4j2 中的 LogEvent)中为我的 ConsoleAppender 获取用户名参数。
迁移到 log4j2 时,如何在 log4j 中重新创建更改 CustomConsoleAppender 的 doAppend 方法的实现:
public class CustomConsoleAppender extends ConsoleAppender
{
public void doAppend(LoggingEvent event)
{
String username = SecurityContextHelper.getLogonUsername();
if (username != null)
MDC.put("userId", username);
else
MDC.put("userId", "system");
super.doAppend(event);
}
}
然后使用模式在相应附加程序的 PatternLayout 中的 log4j2.properties 中检索该值:%X{userId}