python-实时分析log文件每秒记录数

文件名:gencdr.py

作用:在指定的时间里每秒向testcdr.txt文件中写N行记录,N为随机数。模拟access.log。


# -*- coding: utf-8 -*-
"""
zhangbo2012
http://www.cnblogs.com/zhangbo2012/
"""

import time
import datetime
import random

filepath = "testcdr.txt"

def time2yyyymmddhhmiss():
return datetime.datetime.now().strftime(‘%Y%m%d%H%M%S‘)

with open(filepath,‘w‘) as wf:
for i in range(150):
time.sleep(1)
linecnt = int(random.random()*20)
for i in range(linecnt):
ol = "%s|%04d|%04d|%04d\n" % (time2yyyymmddhhmiss(),int(random.random()*9999),int(random.random()*9999),i)
wf.write(ol)
print ol,
wf.flush()

运行效果


文件名:analyze_cdrfile.py

作用:    实时分析testcdr.txt文件中的记录,输出每秒记录数。目前配置为延迟30秒输出。


# -*- coding: utf-8 -*-
"""
zhangbo2012
http://www.cnblogs.com/zhangbo2012/
"""

import time
import datetime

filepath = "testcdr.txt"
delaysec = 30

seccnt = {}
timepos = 0

def time2yyyymmddhhmiss():
return datetime.datetime.now().strftime(‘%Y%m%d%H%M%S‘)

def yyyymmddhhmiss2time(yyyymmddhhmiss):
return time.mktime(time.strptime(yyyymmddhhmiss,‘%Y%m%d%H%M%S‘))

print "---start---"
nowrectime=‘9999999999‘
with open(filepath,‘r‘) as rf:
for line in rf:
rectime = str(line).split("|")[timepos]
if nowrectime<rectime:
print nowrectime,seccnt[nowrectime]

while (time.time() - yyyymmddhhmiss2time(rectime) < delaysec):
time.sleep(1)

if rectime in seccnt.keys():
seccnt[rectime] +=1
else:
seccnt[rectime] = 1

nowrectime = rectime

print "---end---"

运行效果

python-实时分析log文件每秒记录数,码迷,mamicode.com

时间: 2024-12-31 03:34:11

python-实时分析log文件每秒记录数的相关文章

利用python 提取log 文件中的关键句子,并进行统计分析

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log' file=open(file_name,'r') acnum=[];time_res=[];lnum=0 def trans_time(time): t1=datet

python实时处理log文件脚本

这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一下(还是初学者,大神们勿喷哈),真心希望博友们能够再指点一下(现在记录每次的文件大小值是输出到了一个文件中,并且里面还嵌套了有shell命令,这些我认为都是可以优化掉的吧,只是现在我还不知道怎么做):告警是基于zabbix,自定义的模板是120s执行一次 #!/usr/local/bin/pytho

Python读取log文件报错“UnicodeDecodeError”

问题描述: 写了一个读取log文件的Python脚本: # -*- coding:utf-8 -*- import os import numpy as np file = 'D:\pythonfile\test.log' for line in open("test.log","r"): print(line) 但是在执行时报错:执行代码报错: Traceback (most recent call last): File "D:/pythonfile/

利用python 提取log 文件里的关键句子,并进行统计分析

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log' file=open(file_name,'r') acnum=[];time_res=[];lnum=0 def trans_time(time): t1=datet

使用python对PDF文件进行等页数分割

用到了pyPDF库,很简单的脚步,废话不多说了.直接上代码 1 # coding:utf8 2 import os 3 from pyPdf import PdfFileWriter, PdfFileReader 4 def split(pdf_file, delta, output_dir): 5 if not os.path.exists(output_dir): 6 os.makedirs(output_dir) 7 if not os.path.exists(pdf_file): 8 r

ArcGIS for Android图层记录数,图层选择记录,图层字段数

Log.d("图层记录数:", "" + pFeatureLayer.getFeatureTable().getNumberOfFeatures()); Log.d("图层选择记录数:", "" + pFeatureLayer.getSelectedFeatures().size()); Log.d("图层字段数:", "" + pFeatureLayer.getFeatureTable

python实现将文件中的每一行文本记录,保存到MongoDB数据库,并防止重复插入

文本如下: #日期 流水号 被浏览页面URL 第×页 访问者IP 访问时间 是否入口 操作系统 浏览器 语言 时区 屏幕分辨率 屏幕色彩位数 省份 城市 接入商 上网场所 是否安装ALEXA 2014-7-17 11452775496 http://www.imaibo.net/space/178120 1 59.41.23.101 2014-7-17 13:38:14 0 Windows XP Chrome 21.0.82014-7-17 11452775466 http://www.imai

git log 查看指定文件的提交记录

使用git log除了可以看整个仓库的提交记录外,还可以指定某个文件的提交记录. 1. 查看指定文件的历史提交记录 命令: git log -- <file> 说明:只需要指定文件名称. 示例: 2. 查看每次提交的内容差异 命令: git log -p -2 -- <file> 参数:-p 表示每次提交的内容差异,-2 则表示显示最近的两次更新. 说明:该选项除了显示基本信息之外,还在附带了每次 commit 的变化. 示例: 3. 单词层面上的对比 命令: git log --

删除log文件末尾中指定的行数

/// <summary>        /// 删除log文件末尾中指定的行数        /// </summary>        /// <param name="file">文件路径</param>        /// <param name="line">删除的行数</param>        public static void deleteLogToLine(string