我如何将用户名(主体)附加到 Wildfly 中的每个日志行?
How can i append the username (principal) to each log line in Wildfly?
我正在使用 Wildfly 10 并使用其日志子系统。
现在,我需要将会话中当前登录用户(主体)的登录名附加到 JBoss 日志子系统处理的每条日志消息中。
是否有通用的方法来执行此操作,而不是将用户名附加到我的应用程序中的每个日志消息?
例如我可以这样做:
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
UserModel user = (UserModel)request.getSession().getAttribute("user");
String username = user.getName();
但是我怎样才能让日志子系统为每条日志消息执行此操作?
正如 James R. Perkins 所建议的,这可以通过使用 MDC(映射诊断上下文)来完成。
可以在此处找到有关其工作原理的示例:
https://veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/
我正在使用 Wildfly 10 并使用其日志子系统。
现在,我需要将会话中当前登录用户(主体)的登录名附加到 JBoss 日志子系统处理的每条日志消息中。
是否有通用的方法来执行此操作,而不是将用户名附加到我的应用程序中的每个日志消息?
例如我可以这样做:
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
UserModel user = (UserModel)request.getSession().getAttribute("user");
String username = user.getName();
但是我怎样才能让日志子系统为每条日志消息执行此操作?
正如 James R. Perkins 所建议的,这可以通过使用 MDC(映射诊断上下文)来完成。
可以在此处找到有关其工作原理的示例: https://veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/