新建一个类,专门用来写日志,构造的时候即打开举袜扰或新建日志文件,析构的时候关闭文件,程序启动后就实例化这个类,然后将此类实例传递给线程,这样就没问题好物了。
顺便推正旦荐你
log4net
,专门用来写日志的一个第三方库,使用了有一段时间了,没发现您遇到的此类问题。
python的多线程为伪多线程,多线程并不能提高文件IO的速度,在读取文件时使用直接读取 for line in open('文件名', 'r') 效率最高,因为此方式为直接读取春敬,不像其它方式要把文件全部加载到内存再读取,灶芦所以效率最高。分割时文件时,提前计算好行数,把读取的每固定数量的行数存入新文件,直接读取完成,最后删除旧文件,即可实现文件分割。
示意代码:
line_count = 0index = 0
fw = open('part'+str(index)+'.log', 'w')
for line in open('filename.log', 'r'):
fw.write(line)
line_count += 扒辩慎1
# 假设每10000行写一个文件
if line_count > 10000:
fw.close()
index += 1
fw = open('part'+str(index)+'.log', 'w')
fw.close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)