如何将用户名(主体)附加到Wildfly的每个日志行?

时间:2016-11-28 11:17:34

标签: wildfly wildfly-10 jboss-logging

我正在使用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为每条日志消息执行此操作?

1 个答案:

答案 0 :(得分:0)

正如James R. Perkins建议的那样,可以使用MDC(映射诊断上下文)来完成。

可以在此处找到有关其工作原理的示例: https://veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/