首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最后五分钟使用Python语言进行Log4j日志分析

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

Stack Overflow用户
提问于 2011-11-14 20:59:46
回答 2查看 1.9K关注 0票数 1

我正在尝试分析过去五分钟内记录的java应用程序日志(使用log4j )。我计划使用Python来分析过去五分钟的日志,如果有任何警告,请给我发邮件。

有没有人能建议我,获取最近五分钟日志行的最佳方法是什么?

为此,我必须使用python。

日志格式如下:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2011-11-14 21:11:42

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

代码语言:javascript
复制
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...
票数 2
EN

Stack Overflow用户

发布于 2011-11-14 21:11:26

分析“最后5分钟”并不是很有意义。如果是我,我会让一些东西持续运行,并将其发出的警报限制在每5分钟一次。

(假设您想继续使用log4j写入文件...)虽然您可以在python代码中处理文件I/O,但使用'tail‘将文件导入脚本可能会更简单。显然,您需要计划如何处理轮换日志文件--想必您已经有了相应的机制--需要告诉python代码在轮换之后重新打开它的文件句柄。

使用管道将数据发送到python脚本可能要简单得多--并让python handle the rotation

如果没有任何日志消息,则使用don't forget to add a SIGALRM强制检查事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8121974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档