我进行了一次测试,一次可能需要15米。在这15米期间,会定期写入日志文件。但是,大多数内容都是无用的。
响应于此,我有一个python脚本,解析无用的文本并显示相关的数据。
我想要实现的目标类似于tail -f log_file
,不断更新终端并添加最新的文件。我想如果一个python脚本作为一个进程运行,它可以在测试写入时解析日志文件,然后python脚本可以进入休眠状态,直到写入日志文件后再次中断。
任何想法如何实现这一目标?
我已经有一个执行解析的脚本,我只是不知道如何让它持续有效地完成。
答案 0 :(得分:3)
看起来你需要像“pytailer”这样的东西: http://code.google.com/p/pytailer/
虽然我自己从未使用过它,但最后一个例子看起来就像你想要的那样。
答案 1 :(得分:3)
您可以让脚本过滤标准输入,并通过它来管道tail -f
。当你在stdin上等待时,你的脚本会睡觉,所以效率很高。
例如
python long_running_script.py && tail -f log_file | python filter_logs.py
您的脚本可能类似于
while true:
line = sys.stdin.readline()
if filter_line(line): print line
答案 2 :(得分:0)
任何想法如何实现这一目标?
这应该很容易做到。您想要的大部分内容已经成为您操作系统的一部分。
python test.py | python log_parser.py
确保您的测试将其日志写入stdout而不是其他文件。对日志记录配置进行少量更改通常很容易做到这一点。
答案 3 :(得分:0)
实施了几乎这个确切的工具后,我使用inotify capability in twisted
取得了很大的成功