Java 在web应用程序中查看日志跟踪

Java 在web应用程序中查看日志跟踪,java,jakarta-ee,Java,Jakarta Ee,我有一个j2ee web应用程序,它使用log4j进行日志记录。我想在管理页面上有一个日志查看器。这应该允许用户在应用程序UI上查看log4j日志。有人知道如何用java实现吗, -实时滚动日志会很棒, -否则,假设最后500行日志可以手动刷新。 后者使用文件操作的问题是,我不确定每次刷新需要多长时间,因为在log4j生成新文件之前,日志文件的大小可能是10mib 最好的方法是什么。任何指点都很好。。谢谢你,你不能像C一样在低级别管理文件,这就是为什么你不能在不读取整个文件的情况下读取文件的最后

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


最好的方法是什么。任何指点都很好。。谢谢你,你不能像C一样在低级别管理文件,这就是为什么你不能在不读取整个文件的情况下读取文件的最后X行


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

要做到这一点,必须查看以下结构

  • 在应用程序的log4j.xml中,确保appender正在发送到可公开访问的文件夹

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

  • 更好的是,读取请求应该在JMS实现之后,这样它就可以在后台读取,而不会在前端阻塞视图请求。也就是说,如果文件相当大,则不会阻止对servlet的请求。完成读取后,可以搜索字符串的出现,以截断文件内容(可能是输出日期和时间戳)。这将是记忆密集型的,但已经做了很多次了


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

    它在Linux上运行吗?您可以始终通过管道从
    tail-f
    传输流。是的,服务器是unix服务器。我可以通过tail-f在unix终端上查看日志,但如何在浏览器的应用程序页面上查看日志。是否可以(如,一个好主意)从应用程序调用本机tail-f命令,然后在页面上显示输出??检查此线程: