[英]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.