当前位置: 首页 > 面试题库 >

jsp以查看日志文件(例如“ web tail -f”)

贺波
2023-03-14
问题内容

您将如何实现一个包含文本区域的jsp站点,该文本区域显示(tomcat)服务器上的日志文件并自动刷新。

我认为刷新很容易使用setTimeout轮询到服务器并发送ajax请求。但是问题是如何监视服务器上的文件(它是一个Log4J日志文件-
也许我可以使用自己的附加程序?)进行更改,并在ajax请求到达时仅发送更改后的行?

我不知道如何检测日志中更改的行…


问题答案:

ajax并每隔几秒钟轮询一次服务器是一个好主意,但是使用Comet / server-push / websocket会更有效,并且不会遇到任何延迟。

关于服务器端,您有几种选择:

  • 每次用户请求新数据时打开文件,请移至末尾并发送最后几行。您需要以某种方式指出最后一次发送的行数据,以避免多次发送相同的行或丢失其中的一些行。在AJAX调用中使用时间戳参数来说: 在…之后给我所有日志行

该解决方案非常无效,并且会产生大量I / O流量

  • 保持开放流到每个客户端的日志文件,并且当客户端要求换行时,请尽可能多地阅读(当然不会阻塞)。

好多了,但扩展性不好( 打开的文件太多 ,我来了)

  • 编写一个自定义的log4j附加程序,并将最新的日志保留在内存中。当客户询问时,只需转储该缓冲区的内容(对时间戳的限制相同)

非常强大,但请注意内存使用情况!

  • 最后,考虑使用现成的工具(例如psi-probe)提供此功能:

psi探针http://psi-probe.googlecode.com/svn/wiki/Features/log-
tail.png



 类似资料:
  • 问题内容: 我已经读过Mysql服务器创建了一个日志文件,其中记录了所有活动-例如何时以及执行什么查询。 有人可以告诉我它在系统中的什么位置吗?我该怎么读? 基本上,我需要使用不同的输入[两个日期之间的备份]来备份数据库,所以我认为我需要在此处使用日志文件,这就是为什么要这样做… 我认为必须以某种方式保护此日志,因为可能会记录诸如用户名和密码之类的敏感信息[如果有任何查询要求];这样可以确保它安全

  • 我使用textwatcher监视一个EditText我把每个按键都存储在一个日志文件中我想查看我在运行应用程序后放入日志文件中的数据,但仍然找不到它是如何运行的。感谢帮助我的好意:)

  • 本文档介绍如何查看 TiDB 集群各组件日志,以及 TiDB 慢查询日志。 TiDB 集群各组件日志 通过 TiDB Operator 部署的 TiDB 各组件默认将日志输出在容器的 stdout 和 stderr 中。可以通过下面的方法查看单个 Pod 的日志: kubectl logs -n ${namespace} ${pod_name} 如果这个 Pod 由多个 Container 组成,

  • 本文向大家介绍svn 查看日志,包括了svn 查看日志的使用技巧和注意事项,需要的朋友参考一下 示例 运行svn log将向您显示所有提交消息,您可能只想查看某些修订。 查看n最新修订: svn log -n 查看特定修订版: svn log -c rXXX 查看受影响的路径: svn log -v -c rXXX

  • 我正在使用spring boot应用程序。我为它设置了MvcConfig类,并将tomcat嵌入jasper和jstl依赖项添加到pom中。xml。然而,我无法在“WEB-INF”文件夹中查看我的jsp文件,我将得到404错误(白标错误页面)。我已经设置了应用程序。属性。这是我的申请表。属性: 这是我的MvcConfig类: 以下是我的home.jsp: 插入src内部 我已经将这些依赖项添加到p

  • 问题内容: 有没有办法像在开发中一样查看生产环境中从Rails生成的所有查询? 问题答案: 是的你可以。如果进入config / environments / production.rb文件,则有类似以下内容的部分: 取消注释config.log_level行,您将在生产中获得与在开发中相同的日志。