Parsing 解析活动日志文件

Parsing 解析活动日志文件,parsing,logging,Parsing,Logging,寻找一点帮助开始一个小项目,我已经在我的脑海里有一段时间了 我有不同大小的日志文件,这取决于从50-500MB清理日志文件的频率。我想写一个程序,在日志文件被主动写入时监视它。在使用过程中,它可以很快地改变,每秒大约几百行。我看到的大多数读取日志/文本文件的示例(如果不是所有的话)都是简单地打开并将文件内容读入一个变量中,而在这种情况下,并不是每次文件更改时都可以这样做。我还没有决定用哪种语言来写这篇文章,但它是在一个windows框中,我可以在.net flavors/java/或php中工作

寻找一点帮助开始一个小项目,我已经在我的脑海里有一段时间了

我有不同大小的日志文件,这取决于从50-500MB清理日志文件的频率。我想写一个程序,在日志文件被主动写入时监视它。在使用过程中,它可以很快地改变,每秒大约几百行。我看到的大多数读取日志/文本文件的示例(如果不是所有的话)都是简单地打开并将文件内容读入一个变量中,而在这种情况下,并不是每次文件更改时都可以这样做。我还没有决定用哪种语言来写这篇文章,但它是在一个windows框中,我可以在.net flavors/java/或php中工作(呵呵,我不认为php会在这方面发展得很好),如果有人对处理这一问题的好方法提出建议,我可能会混过另一种语言

从本质上说,我相信我正在寻找的可能更好地描述为一种监控文本文件更改并查看这些更改的高速方式。写的每一行都相对较小。(少于300个字符,所以每行数据都不大)

编辑:修改措辞,希望能更好地描述我想做的事情。这就是编写一个程序来监视触发器的日志文件,然后将下面的操作与该触发器匹配。所以我这里的问题是关于编程语言内部的文件处理


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

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


否则,您可以使用
tail-f
,方法是获取其标准输出并将其用于您的目的。

您所描述的“关注日志文件”部分就是
tail
的功能


如果您计划在Java中实现它,您可以检查以下问题:并将触发器逻辑添加到lines read中。

我建议不要重新发明轮子。 尝试使用

所有这些应用程序都是开源和免费的,并且能够(一起)监控和触发基于输入的操作

  • filebeats-将逐行读取日志文件(也支持多行日志消息),并将其发送到logstash。你可以使用其他托运人的货物。
  • logstash-将获取日志消息,过滤它们,添加标记并将消息发送到elasticsearch
  • elasticsearch-将获取日志消息并对其进行索引,然后存储它们。它还能够根据输入运行操作
  • kibana-是一个用户友好的web界面,用于查询和分析数据。或者干脆把它放在仪表板上


    希望这有帮助。

    您考虑过像BareTail这样的工具吗?我喜欢其他用途的外观,但为此,我需要对日志文件中的触发器进行操作,然后监视接下来应该执行的操作。