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 SQLite3数据库操作类分享
Jun 10 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
CentOS下使用yum安装python-pip失败的完美解决方法
Aug 16 Python
几行Python代码爬取3000+上市公司的信息
Jan 24 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python 6行代码制作月历生成器
Sep 18 Python
解决python存数据库速度太慢的问题
Apr 23 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 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新手用的Insert和Update语句构造类
2012/03/31 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
ThinkPHP模型详解
2015/07/27 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
js实现日历
2020/11/07 Javascript
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
python numpy库np.percentile用法说明
2020/06/08 Python
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
升国旗仪式主持词
2014/03/19 职场文书
英语专业自荐书
2014/06/13 职场文书
合同意向书范本
2014/07/30 职场文书
挂职学习心得体会
2014/09/09 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
教学反思怎么写
2016/02/24 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript