在我们的grails应用程序中,我们记录了很多,但是需要一种机制来将所有这些消息与正在处理的请求/响应相关联。事实证明,生成请求UUID非常容易,但现在我希望将该id附加到请求上下文中生成的每条日志消息中,而不在每条日志消息中传递该ID。是否有人实现了这样的系统,以便您可以将所有日志语句关联在一起?
答案 0 :(得分:4)
log4j的一个相当模糊的功能,称为MDC,似乎正是您所需要的。
像http://gustlik.wordpress.com/2008/07/05/user-context-tracking-in-log4j/
这样的东西如果您使用自定义AppFilter设置请求唯一值,它在Grails中也能正常工作。
答案 1 :(得分:0)
您可以尝试使用RequestContextHolder
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
log.debug attr.getRequest().getSession()
获得会话对象后,您可以获得隐藏的任何标识符吗?