python 用蟒蛇实现的日志流式分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 用蟒蛇实现的日志流式分析相关的知识,希望对你有一定的参考价值。

# 用来产生日志以供测试
$ i=0; while true; do echo $i' hello' >> access.log; let i++; sleep 0.01; done;
# -*- coding: utf-8 -*-
'''
tail一个文件,做流式分析,可以用于日志输出的监控。
此处示例为每3秒输出统计得到的行数和字符数。
'''
import time
import subprocess
import datetime
from threading import Timer

filename = 'access.log'
interval = 3        # 间隔时间
result_init = {
    'chars': 0,
    'lines': 0,
}
result = dict(result_init)

def readfile(filename):
    f = subprocess.Popen(['tail','-c','0','-F',filename], stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    while True:
        line = f.stdout.readline()
        process(line)

def process(line):
    '''处理一行'''
    global result
    result['chars'] += len(line)
    result['lines'] += 1

def summary():
    global result
    print u'【{0:%Y-%m-%d %H:%M:%S}】{2} lines, {3} chars in {1}s'.format(
            datetime.datetime.now(),
            interval,
            result['lines'],
            result['chars'])
    result = dict(result_init)
    Timer(interval, summary, ()).start()

if __name__ == '__main__':
    print 'start to analysis...'
    Timer(0, readfile, (filename, )).start()
    Timer(interval, summary, ()).start()

以上是关于python 用蟒蛇实现的日志流式分析的主要内容,如果未能解决你的问题,请参考以下文章

从无人机 Parrot 2.0 流式传输视频。蟒蛇+简历2

Storm+Kafka实现流式大数据实时日志分析

如何用python绘制彩色蟒蛇

python 蟒蛇日志初始化

python 蟒蛇日志设置

用python怎么把蟒蛇变成彩色?