开发者

How do I associate all logs with their request in grails?

In our grails application we're logging a lot, but need a mechanism to associate all of those messages with the request/response being processed. It has proven easy enough to generate a request UUID, but now I'd like that id appended to each log message generated within a request context without passing that id within each log message. Has anybody implemented such a sys开发者_StackOverflowtem so that you can associate all of your log statements together?


A rather obscure feature of log4j, called MDC seems to be exactly what you need.

Something like http://gustlik.wordpress.com/2008/07/05/user-context-tracking-in-log4j/

It will work fine in Grails as well if you use a custom AppFilter to set the request-unique value.


you could try utilizing the RequestContextHolder

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/context/request/RequestContextHolder.html

ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
log.debug attr.getRequest().getSession()

Once you get the session object, you can get whatever identifier you have stashed away?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜