2011-11-04 95 views
0

我有一个使用log4j进行日志记录的j2ee web应用程序。我想在管理页面上有一个日志查看器。这应该允许用户在应用程序UI上查看log4j日志。有谁知道如何在java中实现,也许, - 实时滚动日志会很好, - 否则可以说最后500行日志手动刷新可以完成。 后者使用文件操作的问题是,我不确定每次刷新会有多长时间,因为在log4j生成新文件之前日志文件的大小可能为10 MiB。在web应用程序中查看日志跟踪

什么是最好的方式来做到这一点。任何指针会很好..谢谢

+0

它在Linux上运行吗?你总是可以从'tail -f'管道输出流。 – Bringer128

+0

是服务器是unix服务器。我可以用tail -f在unix终端上看到日志,但是如何在浏览器的应用程序页面上查看它。 – Ash

+0

从应用程序中调用本地tail -f命令,然后在页面上显示输出结果是否可能(如在一个好主意中)? – Ash

回答

0

你可以做到这一点,你必须看看下面的结构。

  1. 在您的log4j.xml中为您的申请,请确保您的appender发送到公共可访问的文件夹。

  2. 在您的视图应用程序中,每次刷新(页面上的refesh按钮),转到服务器,读取文件,将内容喷出到您的页面。

  3. 更好的是,读取请求应该在JMS实现的后面,所以它可以在后台读取而不会阻止前面的查看请求。 IE,如果该文件相当大,则不会阻止对servlet的请求。完成读取后,可以搜索出现的字符串以截断文件内容(可能是输出日期和时间戳)。这将是密集的记忆,但它已经完成了很多次。

0

恕我直言,你不能像C一样在低级别管理文件,这就是为什么你不能从文件中读取最后一个X行,没有你读取整个文件。

但是Log4j可以将日志发送到数据库(JDBCAppender)并从数据库中轻松管理日志。

0

您可以提供一个休息api/url来访问服务器日志。人们很容易调试/书签/刷新。