web-ajax动态获取服务器日志变化

       最近做了一个日志监控系统,要求动态的监控后台日志的变化并展示到其客户端(第一次要求读取文件末尾的500行数据,后面日志变化要追加到监控页面);经过分析,难点在于两个地方:

     1.后台日志文件过大时,读取效率;

     2.前台的展现方式,采用一种合适的控件动态的展现日志。

对于以上两个问题的解决:

     1.采用java中的RandomAccessFile可以进行快速读取,其中seek方法可以快速定位到读取位置;

     2.采用textarea来显示后台日志,并且日志变化时自动将滚动条显示到最后,这样可以看到最新的日志。

系统已经实现,经过测试,读取300M左右的文件效率很快,没有问题,核心代码如下:

      1.后台读取文件模块

/**

*第一次读取文件时采用seek到文件的后500行位置,在逐行读取,html textarea在ie8下的换行符为"\r\n"

*/

private static String getFirstReadInfo(File f) throws IOException {
  String lastModifyTime = FileQueryDao.SDF_DETAIL.format(new Date(f
    .lastModified()));
  RandomAccessFile rf = new RandomAccessFile(f, "r");
  int totalReadRows = FIRST_READ_ROW_NUM;
  long len = f.length(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值