这种动态日志输出是咋实现的?

干爷爷 发布于 2015/05/20 14:40
阅读 289
收藏 0

类似于tomcat的catalina.out动态输出到html页面

加载中
0
rayeaster
rayeaster

涉及服务端和页面:

先说页面,如果要主动刷新,肯定得采用用ajax请求轮询后端服务器catalina.out有没有新日志,如果有就显示,没有就sleep一会。如果不需要主动刷新,可以加一个按钮,用户点一下才发送ajax请求后台

服务端的话:最简单的方案,服务端轮询去读取catalina.out文件,把增量的日志拿到(比如可以采取比较前后两次文件大小,总长度之类的);另一种方案,服务端不用轮询,用一些监控文件变化的工具,当文件发生变化是由工具主动触发服务端更新。工具的话,如果用java,可以考虑apache commons的FileAlterationObserver,也可以参考这个官方文档自己写一个监听器。别的语言应该也有类似的库

rayeaster
rayeaster
回复 @干爷爷 : 不客气,如果觉得有所帮助的话,麻烦顶一下或者采纳为最佳答案:)。websocket是html5的新特性,我自己并没有用过,没有太多经验可以分享,不过这是个趋势,应该还可行的。可以参考http://socket.io/。服务器端log4j其实应该支持不同类型的appender,甚至可以自己实现,也就是你可以直接注册一个appender,日志内容直接输出到页面,都不用拦截。
干爷爷
干爷爷
感谢您这么用心的回答 页面我想通过WebSocket和后台交互,不知道可行不? 服务器端,我想拦截Log4J的日志输出,也不知道可行不可行
0
徐春鹏
徐春鹏
重定向输出流 ,想写哪里就写哪里。
返回顶部
顶部