zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python动态监控日志内容的示例

Python监控日志 示例 动态 内容
2023-06-13 09:15:17 时间

日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件
程序只是简单的示例一下,监控test1.log10秒,转向监控test2.log

程序监控使用是linux的命令tail-f来动态监控新追加的日志

复制代码代码如下:


#!/usr/bin/python
#encoding=utf-8
#Filename:monitorLog.py
importos
importsignal
importsubprocess
importtime


logFile1="test1.log"
logFile2="test2.log"

#日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件
#程序只是简单的示例一下,监控test1.log10秒,转向监控test2.log
defmonitorLog(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))
   whileTrue:
       line=popen.stdout.readline().strip()
       #判断内容是否为空
       ifline:
           print(line)
       #当前时间
       thistime=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime(time.time()))
       ifthistime>=stoptime:
           #终止子进程
           popen.kill()
           print"杀死subprocess"
           break
   time.sleep(2)
   monitorLog(logFile2)

if__name__=="__main__":
   monitorLog(logFile1)