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多进程并发(multiprocessing)用法实例详解
Jun 02 Python
Python微信库:itchat的用法详解
Aug 14 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python Series从0开始索引的方法
Nov 06 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Python创建临时文件和文件夹
Aug 05 Python
matplotlib对象拾取事件处理的实现
Jan 14 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的memory_limit限制的方法分享
2012/02/21 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现简单字典树的方法
2016/04/29 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
学生自我鉴定范文
2013/10/04 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
优秀护士演讲稿
2014/04/30 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
五一劳动节慰问信
2015/02/14 职场文书
2015年宣传工作总结
2015/04/08 职场文书
催款函范文
2015/06/24 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis