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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
python进阶教程之动态类型详解
Aug 30 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
Python实现基于POS算法的区块链
Aug 07 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
pycharm 实现调试窗口恢复
Feb 05 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四舍五入精确小数位及取整
2014/01/14 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
python实现猜单词小游戏
2020/05/22 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python接口测试文件上传实例解析
2020/05/22 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
公司业务主管岗位职责
2013/12/07 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
毕业生个人自荐书
2015/03/05 职场文书
学子宴致辞大全
2015/07/27 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python