python动态监控日志内容的示例


Posted in Python onFebruary 16, 2014

日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件
程序只是简单的示例一下,监控test1.log 10秒,转向监控test2.log

程序监控使用是linux的命令tail -f来动态监控新追加的日志

#!/usr/bin/python
# encoding=utf-8
# Filename: monitorLog.py
import os
import signal
import subprocess
import time

logFile1 = "test1.log"
logFile2 = 'test2.log'
#日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件
#程序只是简单的示例一下,监控test1.log 10秒,转向监控test2.log
def monitorLog(logFile):
    print '监控的日志文件 是%s' % logFile
    # 程序运行10秒,监控另一个日志
    stoptime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time() + 10))
    popen = subprocess.Popen('tail -f ' + logFile, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    pid = popen.pid
    print('Popen.pid:' + str(pid))
    while True:
        line = popen.stdout.readline().strip()
        # 判断内容是否为空
        if line:
            print(line)
        # 当前时间
        thistime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
        if thistime >= stoptime:
            # 终止子进程
            popen.kill()
            print '杀死subprocess'
            break
    time.sleep(2)
    monitorLog(logFile2)
if __name__ == '__main__':
    monitorLog(logFile1)
Python 相关文章推荐
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 Python
一文详述 Python 中的 property 语法
Sep 01 Python
通过代码简单了解django model序列化作用
Nov 12 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
python缩进区别分析
Feb 15 #Python
python求斐波那契数列示例分享
Feb 14 #Python
python列表去重的二种方法
Feb 14 #Python
python实现倒计时的示例
Feb 14 #Python
python实现排序算法
Feb 14 #Python
python实现dnspod自动更新dns解析的方法
Feb 14 #Python
python时间整形转标准格式的示例分享
Feb 14 #Python
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
javascript getElementsByTagName
2011/01/31 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
理解Python中函数的参数
2015/04/27 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python实现FLV视频拼接功能
2020/01/21 Python
python 的topk算法实例
2020/04/02 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
django有哪些好处和优点
2020/09/01 Python
python 绘制场景热力图的示例
2020/09/23 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
应届生骨科医生求职信
2013/10/31 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
追悼会主持词
2014/03/20 职场文书
《青山处处埋忠骨》教学反思
2014/04/22 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript