解析一个活动日志文件。

3

我希望能够得到一些帮助,开始一个我一直想做的小项目。

我有一些日志文件,大小因清理频率而异,大约在50-500MB之间。我想编写一个程序,在日志文件正在被写入时监视它。当使用时,它会相当快地更改,每秒轻松几百行左右。大多数读取日志/文本文件的示例都只是打开并将文件内容读入变量中,这在每次文件更改时并不可行。我还没有确定要用哪种语言来编写它,但它在Windows上,并且我可以使用 .net / java / 或 php(嘿,我认为php可能不太适合这个),如果有人建议处理此问题的其他语言,我也可以尝试。

基本上,我认为我正在寻找的可能更好地描述为一种高速监视文本文件更改并查看这些更改的方法。每行写入的数据相对较小。(不到300个字符,因此每行数据不算太大)。

编辑:更改措辞,以便更好地描述我试图完成的任务。即编写一个程序,以触发器监视日志文件,然后将随后的操作与该触发器匹配。因此,我的问题涉及编程语言内部的文件处理。

非常感谢任何想法/评论。


1
你考虑过像BareTail这样的工具吗?http://www.baremetalsoft.com/baretail/ - Mark Thomas
我喜欢那个的外观,但对于这个问题,我需要在日志文件中触发一个操作,然后监视应该跟随的操作。 - Nathan
3个回答

0

0

如果是增量的话,您可以在第一次开始分析日志时读取整个文件,然后将当前大小保留为n。下次检查(可能是定时操作以检查最后修改日期)只需跳过前n个字节,读取所有新字节并更新大小。

否则,您可以通过获取其标准输出并将其用于您的目的来使用tail -f


0
我建议不要重复造轮子,试着使用elastic.co

enter image description here

所有这些应用程序都是开源和免费的,能够一起监控并根据输入触发操作。
  • filebeats - 将逐行读取日志文件(还支持多行日志消息),然后将其发送到logstash。您还可以使用许多其他的shippers。
  • logstash - 将接收日志消息,对其进行过滤、添加标签,并将消息发送到elasticsearch。
  • elasticsearch - 将接收日志消息并对其进行索引和存储。它还能根据输入执行操作。
  • kibana - 是一个用户友好的Web界面,用于查询和分析数据。或者只需将其放在仪表板上。
  • 希望对您有所帮助。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接