3

我有一个用 python 编写的应用程序,它在日志文件中记录错误,我正在使用 python 日志记录模块

例子:

import logging
logging.basicConfig(filename='\logs\filename.log',
                    level=logging.DEBUG,
                    format='%(asctime)s - %(levelname)s - %(message)s')
logging.error('error connecting to server')

这工作正常,日志文件正在记录错误,这意味着最后一个错误记录在文件的最后一行。

是否有某种设置我可以告诉日志记录模块始终写在文件的顶部,这样最后一个错误总是在第一行。

4

1 回答 1

2

正如其他人所说,写在文件的前面是非常低效的。每次写入都必须首先查找文件的开头,然后在其他数据之前插入新数据。操作系统的底层 I/O 旨在降低附加成本。

也就是说,如果您坚持这样做,请查看Logging Handlers此处的文档。您可以实现自己的版本,logging.handlers.FileHandler该版本将在每次写入之前搜索到开头。然后你可以调用logging.addHandler()并放置你的类的一个实例。如果您只关心最近的 10 个左右的日志条目,您甚至可以在写入之前截断文件。

于 2012-10-11T17:54:37.400 回答