本文共 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/