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实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
python解析基于xml格式的日志文件
Feb 25 Python
Windows上使用Python增加或删除权限的方法
Apr 24 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
详解用python写一个抽奖程序
May 10 Python
python elasticsearch环境搭建详解
Sep 02 Python
python绘制彩虹图
Dec 16 Python
python实现梯度下降算法的实例详解
Aug 17 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 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
jquery中ajax学习笔记一
2011/10/16 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
javascript折半查找详解
2015/01/26 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
2021/01/13 Vue.js
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Hadoop中的Python框架的使用指南
2015/04/22 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python算法中的时间复杂度问题
2019/11/19 Python
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
大学新生军训感言
2014/02/25 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
初中新生军训方案
2014/05/13 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
经营场所使用证明
2015/06/19 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
MySQL笔记 —SQL运算符
2022/01/18 MySQL