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二叉树遍历的实现方法
Nov 21 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
python Django框架实现自定义表单提交
Mar 25 Python
Python中元组,列表,字典的区别
May 21 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
在ipython notebook中使用argparse方式
Apr 20 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
Python打印不合法的文件名
Jul 31 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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在服务器执行exec命令失败的解决方法
2012/03/03 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
js玩一玩WSH吧
2007/02/23 Javascript
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
总结python中pass的作用
2019/02/27 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python 如何提高元组的可读性
2019/08/26 Python
python 实现视频 图像帧提取
2019/12/10 Python
Python连接字符串过程详解
2020/01/06 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
请说出几个常用的异常类
2013/01/08 面试题
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
幼儿园中班教师寄语
2014/04/03 职场文书
医院义诊活动总结
2014/07/04 职场文书
基层党组织整改方案
2014/10/25 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers