2010-07-01 56 views
1

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

我一直在看log4j加上电锯,我想我可以extend log4j to add additional attributes这是伟大的,但那么我怎么看链锯中的这些自定义属性?

当然,我不是第一个有这个问题,除了log4j加上链锯之外,还有什么我可以使用的吗?

回答

2

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

+0

好了,我该如何创建或得到一个NDC?我假设我应该使用LoggingEvent.getNDC(),但是如何获取日志记录事件?我拥有的只是一个记录器,一个appender和一个布局对象。 – Ring 2010-07-01 22:22:56

+0

阅读我链接的javadoc。请注意,操作NDC的操作是静态的,您无需获得NDC类的实例即可使用NDC。另请注意,PatternLayout可以配置为打印NDC的当前内容。 – meriton 2010-07-01 22:36:23

+0

啊哈哈。谢谢你,愚蠢的我,出于某种原因,我的思想被封锁,不断思考这些是实例方法。 – Ring 2010-07-01 22:39:45

0

您是伐木审核您的用户?

审计涉及审查用户操作作为正常操作的一部分并且属于数据库。

伐木是更多的休息/修复。

0

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

如果你想快速的解决方案,你可以养活现有的日志文件到 - 尝试splunk

HTH

1

免责声明:我电锯的提交者之一......

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

很多在即将发布(即将)即将到来的新功能,它可以很容易地过滤,着色,搜索和sort..or,拉电锯+ log4j的同伴下来通过svn与Maven构建...

一个非常方便的功能:可以为单个事件添加评论,保存电锯内部的事件并将结果文件发送给其他人,他们可以在表格中查看您的评论。

这里有一个屏幕视频:http://people.apache.org/~sdeboy/chainsawdemo.avi