2011-10-10 108 views
4

写这个查询之前,我查阅了类似的查询在:在Log4J的请求范围

我觉得我的查询听起来相似但不相同的。

你有没有遇到过的日志信息的分组对要求进入和他们的反应密切冲洗。即预期的操作顺序如下:

  1. 配置记录器请求范围。
  2. 服务器收到请求。
  3. 由每个上下文bean编写的日志将被请求范围记录器缓冲。
  4. 响应准备,刷新和关闭。
  5. 记录器得到通知响应已完成。
  6. 现在,logger将缓冲消息作为批处理写入关联的appender,然后清除其缓冲区。

我期待与现有的log4j实现这种可能性。

请分享您的观点。

回答

2

包括请求ID为日志(你可以使用Log4j的NDC)。按此ID和时间戳对日志文件进行排序。

我认为这是错误的,记录的顺序事件,从原来的顺序不同。这可能导致一个非常大的混乱。

1

我通常要求不组日志,因为交谈是不是一个请求更长的时间。所以我的解决方案是将用户名添加到log4j's MDC

这样,我可以为每个用户创建一个日志文件或查看用户所做的所有请求(加上响应以及在请求之外代表用户执行的所有代码,例如当后台作业开始时)。

+0

我之前使用过MDC。尝试使用其他方法将每个请求生成的整个日志消息作为批处理文件写入日志文件。通过MDC,我可以轻松区分每个日志语句,但是深入钻取日志内容却非常痛苦。 –

+0

什么让它痛苦? –

+0

这不是通过编码,而是感觉。它是在搜索MDC关键字的每个记录语句。 想要的东西,如: '--- boundaryString:start' '<与MDC关键字log4j的转换模式>加上bean1' 登录声明'<与MDC关键字log4j的转换模式>加上bean2' 日志语句' ...' '--- boundaryString:end' –