python实现定时提取实时日志程序

yipeiwu_com5年前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) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

PyQt5 窗口切换与自定义对话框的实例

近日,需要实现一个功能小而全的桌面版软件,所以选中并尝试了PyQt5这个GUI库。在使用中发现,其功能的确完备,但这方面的资料的确不多,有时自己想实现的功能相关资料找不到,有的还不得不阅...

详细讲解Python中的文件I/O操作

详细讲解Python中的文件I/O操作

 本章将覆盖所有在Python中使用的基本I/O功能。有关更多函数,请参考标准Python文档。 打印到屏幕上: 产生输出最简单的方法是使用print语句,可以通过用逗号分隔的...

Python Numpy库安装与基本操作示例

Python Numpy库安装与基本操作示例

本文实例讲述了Python Numpy库安装与基本操作。分享给大家供大家参考,具体如下: 概述 NumPy(Numeric Python)扩展包提供了数组功能,以及对数据进行快速处理的函...

python 3.6.5 安装配置方法图文教程

python 3.6.5 安装配置方法图文教程

Windowns操作系统中安装Python,供大家参考,具体内容如下 一.下载Python 1.python 官网 下载安装包 2.选择版本 我这里用安装版(64位) 二...

python查找指定具有相同内容文件的方法

本文实例讲述了python查找指定具有相同内容文件的方法。分享给大家供大家参考。具体如下: python代码用于查找指定具有相同内容的文件,可以同时指定多个目录 调用方式:python...