我正在使用Wildfly 10,我正在使用它的日志记录子系统。
现在,我需要将会话中当前登录的User(principal)的LoginName附加到JBoss Logging Subsystem处理的每条日志消息。
是否有通用的方法来执行此操作,而不是将UserName附加到我的应用程序中的每个日志消息?
例如我可以这样做:
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
UserModel user = (UserModel)request.getSession().getAttribute("user");
String username = user.getName();
但是如何让Logging Subsystem为每条日志消息执行此操作?
答案 0 :(得分:0)
正如James R. Perkins建议的那样,可以使用MDC(映射诊断上下文)来完成。
可以在此处找到有关其工作原理的示例: https://veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/