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中的高级数据结构详解
Mar 27 Python
Python3写入文件常用方法实例分析
May 22 Python
详解Python编程中time模块的使用
Nov 20 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
python递归查询菜单并转换成json实例
Mar 27 Python
python实现折半查找和归并排序算法
Apr 14 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
python 梯度法求解函数极值的实例
Jul 10 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
Python3+Django get/post请求实现教程详解
Feb 16 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的FTP学习(一)
2006/10/09 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
js面向对象的写法
2016/02/19 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
python检索特定内容的文本文件实例
2018/06/05 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
英国钻石公司:British Diamond Company
2020/02/16 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
卫校护理专业毕业生求职信
2013/11/26 职场文书
女大学生自我鉴定
2013/12/09 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
上课睡觉检讨书
2014/01/28 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
挂靠协议书
2015/01/27 职场文书
学校运动会加油词
2015/07/18 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
Python入门学习之类的相关知识总结
2021/05/25 Python