当前位置 博文首页 > 程序员石磊:python 日志分割器 大文本处理

    程序员石磊:python 日志分割器 大文本处理

    作者:[db:作者] 时间:2021-08-08 22:25

    最近生产环境系统出问题,为了排除问题,把日志级别开到debug。结果就一会功夫,日志瞬间增加到2g。结果太惨了,记事本和nodepad+就打不开,直接报文件太大。啊啊啊,怎么办呐?还等着分析日志找bug呐。
    开洞脑袋,想啊想,记得曾经看过一篇Python读取大文件,而且可以让内存不爆掉的文章。同时又结合分而治之的思想。ps:据说hadoop好像也是这种思想。因此决定把大文件,分隔处理成小文件,然后就可以用记事本打开了。
    生命苦短,请用python。ps:其实工作中一直用java。动手,几经调试,代码出炉:

    import math
    i=0
    filename=''
    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 = line
    with 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
    
    如果代码报错,请去掉中文注释再试。
    
    
    
    cs
    下一篇:没有了