在Java中记录并轻松查看大量会话数据

时间:2010-07-01 21:24:42

标签: java session sorting log4j logging

我需要为我的java Web应用程序设置一个日志记录系统,它不仅记录常用内容(错误消息,错误级别等),还可以记录其他信息,例如会话ID。当然我想我可以将会话ID放在错误消息中,但问题是我最终会为很多不同的用户记录大量的数据,我需要最终建立一个可以查看日志的系统并根据会话ID对日志进行排序。

我一直在看log4j和电锯,我想我可以extend log4j to add additional attributes哪个好,但是我如何在电锯中查看这些自定义属性?

当然我不是第一个遇到这个问题的人,除了log4j和电锯之外还有什么我可以使用吗?

4 个答案:

答案 0 :(得分:2)

我不知道电锯,但是记录其他交叉信息,例如会话ID,用户名,请求IP,......通常是通过nested diagnostic context完成的。

答案 1 :(得分:1)

免责声明:我是Chainsaw的提交者之一...

Chainsaw将在其自己的列中显示NDC值,并将任何MDC条目显示为自己的列。

即将发布的版本即将推出许多新功能,可以轻松过滤,着色,搜索和排序..或者,通过svn将Chainsaw + log4j同伴拉下来并使用maven构建...

一个非常方便的功能:能够为各个事件添加注释,从Chainsaw内部保存事件,并将生成的文件通过电子邮件发送给其他人,他们可以在表格中查看您的评论。

以下是屏幕视频:http://people.apache.org/~sdeboy/chainsawdemo.avi

答案 2 :(得分:0)

您是记录还是审核您的用户?

审核涉及将用户操作作为正常操作的一部分进行审核,并且属于数据库。

记录更多是用于中断/修复。

答案 3 :(得分:0)

最好的办法是将数据插入数据库。这样,您就可以拥有会话ID的索引,并使用直接SQL快速检索和排序所有信息,或创建轻量级Web应用程序,以便在给定会话ID或其他搜索条件的情况下查看数据库中的数据。

如果您想要一个可以提供现有日志文件的快速解决方案,请试试splunk

HTH