1. 程式人生 > >Python 定時提取實時日誌的程式

Python 定時提取實時日誌的程式

這是一個定時讀取 實時日誌檔案的程式 。 目標檔案是target_file. 它是應用程式實時寫入的。
我要做的是,每個5秒鐘,提取一次該日誌檔案中的內容,然後生成另一個檔案。最後把這些檔案都彙總。 請多多指教。

#!/usr/local/bin/python
# coding:utf-8

import fileinput
import time
import os

target_file = 'user.log'
init_flag = True  # 初次載入程式
time_kick = 5

record_count = 0

while True:
    print '當前讀到了', record_count
    #沒有日誌檔案,等待
if not os.path.exists(target_file): print 'target_file not exist' time.sleep(time_kick) continue try: ip = '10.10.1.100' easytime = time.strftime('%Y%m%d_%H%M%S', time.localtime()) file_name = '%s_user_%s.log' % (ip,easytime) f_w = open(file_name, 'w'
) if init_flag: #讀取整個檔案 for eachline in fileinput.input(target_file): print eachline f_w.write(eachline) record_count += 1 init_flag = False else: #如果總行數小於當前行,那麼認為檔案更新了,從第一行開始讀。 total_count = os.popen('wc -l %s'
% target_file).read().split()[0] total_count = int(total_count) if total_count < record_count: record_count = 0 for eachline in fileinput.input(target_file): line_no = fileinput.filelineno() if line_no > record_count: print eachline f_w.write(eachline) record_count += 1 f_w.close() except: pass time.sleep(time_kick)