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使用ntplib库同步校准当地时间的方法
Jul 02 Python
Python实现在线音乐播放器
Mar 03 Python
Tensorflow之Saver的用法详解
Apr 23 Python
python中的for循环
Sep 28 Python
Python基于百度云文字识别API
Dec 13 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Python预测2020高考分数和录取情况
Jul 08 Python
通过实例简单了解python yield使用方法
Aug 06 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
运动会开幕式邀请函
2014/02/03 职场文书
安全责任协议书
2014/04/21 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
小学教师工作总结2015
2015/04/07 职场文书
主持人大赛开场白
2015/05/29 职场文书