博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 日志分割器 大文本处理
阅读量:2022 次
发布时间:2019-04-28

本文共 921 字,大约阅读时间需要 3 分钟。

最近生产环境系统出问题,为了排除问题,把日志级别开到debug。结果就一会功夫,日志瞬间增加到2g。结果太惨了,记事本和nodepad+就打不开,直接报文件太大。啊啊啊,怎么办呐?还等着分析日志找bug呐。

开洞脑袋,想啊想,记得曾经看过一篇Python读取大文件,而且可以让内存不爆掉的文章。同时又结合分而治之的思想。ps:据说hadoop好像也是这种思想。因此决定把大文件,分隔处理成小文件,然后就可以用记事本打开了。
生命苦短,请用python。ps:其实工作中一直用java。动手,几经调试,代码出炉:

import mathi=0filename=''write=''Rline = ''def writeFile(fileName,line):    global filename    global write    global Rline    if filename!=fileName and filename=='':        write = open('D:/soft/apache-tomcat-7.0.47/logs/'+fileName+".log", 'a+')        write.write(line)    elif  filename!=fileName  and Rline!='':        write.close()#新文件就关闭上个write的流    else:        write.write(line)        filename = fileName    Rline = linewith open('D:/soft/apache-tomcat-7.0.47/logs/cloudq.log','r') as infile:    for line in infile:        name = i/500#设置每一个文件500行。        # print(math.floor(name))        writeFile(str(math.floor(name)),line)        i=i+1如果代码报错,请去掉中文注释再试。

转载地址:http://sdgxf.baihongyu.com/

你可能感兴趣的文章
自动化测试
查看>>
自动化测试 | Appnium | 一、 appium 环境搭建
查看>>
编程题 | 只出现一次的数字
查看>>
编程题 | 多数元素
查看>>
编程题 | 合并两个有序数组
查看>>
工作队列池,线程池
查看>>
Map/reduce
查看>>
linux sh脚本
查看>>
mysql 存储过程,临时表,游标
查看>>
Ehcache配置分布式缓存
查看>>
解决 Android 模拟器无法上网的问题
查看>>
Android2.2 adb shell 不是内部命令解决办法
查看>>
sen1.2词典制作
查看>>
安装模拟器过程中出现tmp下不能copy问题
查看>>
javascript iframe跨域自适应高度
查看>>
利用HTML5的window.postMessage实现跨域通信
查看>>
纯js实现 跨域请求
查看>>
js 对象json用法举例
查看>>
java 构造json对象
查看>>
php报错启动配置
查看>>