繁体   English   中英

最后五分钟使用Python进行Log4j日志分析

[英]last five minutes Log4j log analysis using Python

我正在尝试分析最近五分钟内记录的java应用程序日志(使用log4j)。 我打算使用Python分析最近五分钟的日志记录,如果有任何警告,则必须向我发送邮件。

任何人都可以建议我,最后五分钟获取日志行的最佳方法是什么?

我必须使用python。

日志格式如下,

2011-11-14 10:15:46 WARN : sample warning
2011-11-14 10:15:47 WARN : sample warning
2011-11-14 10:15:48 WARN : sample warning
2011-11-14 10:15:49 WARN : sample warning

由于您的日志文件是按时间顺序排序的,因此您必须完全解析它:

from datetime import datetime, timedelta
now = datetime.now()
lookback = timedelta(minutes=5)
oldest = (now - lookback).strftime('%Y-%m-%d %H:%M:%S')

lines = []

with open('logfile.log', 'r') as f:
    for line in f:
        if line[:19] > oldest:
            lines.append(line)

if lines:
    message = '\n'.join(lines)
    # send message per mail...

分析“最后5分钟”并没有太多意义。 如果是我,我会不停地运行并限制它每5分钟发出的警报。

(假设您要坚持将log4j写入文件...)虽然可以在python代码中处理文件I / O,但使用“ tail”将文件通过管道传输到脚本中可能更简单。 显然,您需要计划如何处理旋转的日志文件-大概您已经有一些解决办法-需要告诉它告诉python代码在旋转后重新打开其文件句柄。

使用管道将数据发送到python脚本可能要简单得多 - 让python处理旋转

无论如何,不​​要忘记添加SIGALRM以在没有任何日志消息的情况下强制执行检查事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM