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中尝试多线程编程的一个简明例子
Apr 07 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
浅析python中的迭代与迭代对象
Oct 08 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python基础类继承重写实现原理解析
Apr 03 Python
python statsmodel的使用
Dec 21 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
python基于selenium爬取斗鱼弹幕
Feb 20 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
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
jquery实现表格隔行换色效果
2015/11/19 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
在Python中COM口的调用方法
2019/07/03 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
即兴演讲稿
2014/01/04 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
大国崛起日本观后感
2015/06/02 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
Python如何用re模块实现简易tokenizer
2022/05/02 Python