標籤:python 日誌
這是一個定時讀取 即時記錄檔的程式 。 目標檔案是target_file. 它是應用程式即時寫入的。
我要做的是,每個5秒鐘,提取一次該記錄檔中的內容,然後產生另一個檔案。最後把這些檔案都匯總。 請多多指教。
#!/usr/local/bin/python# coding:utf-8import fileinputimport timeimport ostarget_file = ‘user.log‘init_flag = True # 初次載入程式time_kick = 5record_count = 0while 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)
Python 定時提取即時日誌的程式