降序排列的 Python 日志文件

标签 python logging python-logging

我有一个用 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')

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

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

最佳答案

正如其他人所说,写到一个文件的前面是非常低效的。每次写入都必须首先查找文件的前面,然后在其他数据之前插入新数据。操作系统的底层 I/O 旨在使追加操作变得廉价。

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

关于降序排列的 Python 日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783343/

相关文章:

python - MLP 中的 Theano 批量学习,偏差形状

javascript - 为什么我的对象的属性没有记录到控制台?

java - 使用 log4j 在 mule 中自定义日志文件名

python - 在 pytest 中禁用特定记录器

从 loop.create_task() 引发的 python asyncio 异常

c# - 将Brotli编译成DLL .NET可以引用

python - 在 NumPy 中转置存储在一维数组中的矩阵的最快方法?

python - hadoop 流 : how to see application logs?

python - 如何在调试日志中查看 Python 请求使用哪个 IP 地址进行连接?

python - Django `extends` 是否接受命名空间解析的模板?