多线程同时向一个日志文件写写入信息,c#如何实现

多线程同时向一个日志文件写写入信息,c#如何实现,第1张

不要让线程写日志,日志文件最好程序启动后就打开,每次需要在打开写入关闭非常消耗资源,建议如下:

新建一个类,专门用来写日志,构造的时候即打开举袜扰或新建日志文件,析构的时候关闭文件,程序启动后就实例化这个类,然后将此类实例传递给线程,这样就没问题好物了。

顺便推正旦荐你

log4net

,专门用来写日志的一个第三方库,使用了有一段时间了,没发现您遇到的此类问题。

python的多线程为伪多线程,多线程并不能提高文件IO的速度,在读取文件时使用直接读取 for line in open('文件名', 'r')  效率最高,因为此方式为直接读取春敬,不像其它方式要把文件全部加载到内存再读取,灶芦所以效率最高。分割时文件时,提前计算好行数,把读取的每固定数量的行数存入新文件,直接读取完成,最后删除旧文件,即可实现文件分割。

示意代码:

line_count = 0

index = 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()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8195389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存