不会超过给定大小的自定义日志文件

时间:2014-03-23 05:31:02

标签: python

每次触发应用程序中的某些事件时,我都需要将一些输出写入日志文件。现在我以最简单的方式做到这一点:

with open('file.log', 'a+') as file:
    file.write('some info')

这很有效,但问题是我不希望文件无限增长。我想要一个坚硬的大小截止值,比如25 MB。但是我不想在文件达到那个大小时简单地清除它。

相反,我希望它能够使我相信其他日志文件的工作方式,从文件顶部清除最旧的数据并将新数据附加到文件的末尾。在Python中实现这一目标的好方法是什么?请注意,我不能使用Python的日志库,因为这是针对Celery应用程序的,并且(a)我已经为与此无关的目的设置了日志记录,并且(b)Celery和日志库不能播放和所有人在一起

1 个答案:

答案 0 :(得分:0)

import os
statinfo = os.stat('somefile.txt')

这将以字节为单位返回somefile.txt的大小。 然后你可以做类似的事情:

if statinfo.st_size > 25000000:

您可以根据需要实施此操作。您可以读取将要替换的行数,删除它们然后将提醒保存在临时文件中,然后您可以编写所需的数据,并附加临时文件。这不会很有效,但它会起作用。