利用Python合并IIS大日志

想用星图分析日志,可是日志是每天一份,一共10几份如果一份一份分析太慢,而且结果也不理想,想要多天的日志一起分析,星图没有提供这个功能,自由自己想办法合并下日志了。
然后用python写了个合并脚本的日志,记录下:

#!/usr/bin/python  
#coding:utf8
import os,sys

fo = open('all.txt', 'w')
for name in ['1.txt','2.txt',]:
    fi = open(name)
    while True:
        s = fi.read(16*1024)
        if not s:
            break
        fo.write(s)
    fi.close()
fo.close()

这样的话会存在一个问题。1.txt的结尾和2.txt的开头合并没有换行,可以在循环外添加一个日志格式的标识,不破坏日志的结构,看了下IIS的日志头是:

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2016-09-04 00:00:00
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent)

这样的话#会注释掉,可以不用追加日志标识。合并的过程中,如果有一个日志文件的日志结构不对应,则会中断,需要所有日志结构都是一样的,跑了一下有错误。一份日志也比较大,没有去找文件中存在问题的哪一行,直接用二分法把日志合并为两份就ok了,如果还是不行的话就分为4份,先找到有问题的日志文件,再进一步定位存在问题的行去孑孓问题。