0

我正在尝试解析日志文件并将其存储在数组中。新信息每 1 小时添加一次(cronjob),我想确保在我的脚本查询数据库之后,只有当我获得新信息(主机名)然后发送电子邮件,否则我们不应该发送电子邮件。我有以下格式的日志文件:

Oct 31 13:45:01 Monitoring [info] Hostname : abc@abc.com
Oct 31 13:45:01 Monitoring [info] A count : 2195073
Oct 31 13:45:01 Monitoring [info] B count : 2191572
Oct 31 13:50:02 Monitoring [info] Hostname : abc@abc.com
Oct 31 13:50:02 Monitoring [info] A count : 2195073
Oct 31 13:50:02 Monitoring [info] B count : 2191572

我希望仅比较主机名,并根据该比较/逻辑决定发送电子邮件警报。因此想要解析上述日志文件并将其存储在一个数组中以执行上述操作。我将不得不在一个类下创建一个新函数来解析日志文件。

有人可以帮助我如何创建一个函数来解析上述日志文件吗?

提前致谢!

4

2 回答 2

0

可能需要更多的时间来这里;你试过什么?你基本上只是把每一行都解析成你想要的。有大量可用的日志解析器。

寻找一个 PHP 类来解析 access.log 文件

于 2013-10-31T21:15:52.877 回答
0

如果您有类似此示例的日志,请尝试:

    $str = "10 月 31 日 13:45:01 监控 [信息] 主机名:abc@abc.com";

    $pos = strpos($str, '主机名');
    如果($pos !== null){  
        回声 substr($str, $pos+11); // 主机名
    }

于 2013-10-31T23:15:00.723 回答