Python 日志记录与写入文件
Posted
技术标签:
【中文标题】Python 日志记录与写入文件【英文标题】:Python logging vs. write to file 【发布时间】:2016-04-24 05:15:41 【问题描述】:哪个更有效率?与使用 logger.info()
相比,使用 open() -> write() -> close()
是否有缺点?
PS。我们正在为一所大学积累查询日志,所以它有可能很快变成大数据(考虑到每天查询日志的最小-最大上限为 3GB-9GB,并且它将终生 24/7 持续运行)。如果您能非常详细地及时解释和区分效率和容易出错的方面,我们将不胜感激。
【问题讨论】:
我非常怀疑写入日志文件的应用程序是否被视为“大数据”,除非您每秒生成数兆字节的文本。 如果您认为这是大数据,那么当您开始使用实际的大数据时,您会大吃一惊。 @cricket_007 如果我夸大了我很抱歉,只是我们每天最多累积大约 9GB 的查询日志,我们的这个引擎将一直被我们的大学使用融合之日。 @BurhanKhalid 是的,我明白。但是每天有 9GB 的数据,一年 24/7 运行,我想我们很快就会在几年内达到这个期限。 (尽管我们可能会因资源有限的问题而删除不必要的) @AngeloSembrano:每天 9GB 不是“大数据”(没有具体的定义,但你知道我的意思)。您的所有数据都可以存放在一个未压缩的硬盘驱动器上,可存放未来 2 年。 【参考方案1】:使用更准确地描述您正在尝试做的事情的方法。你在做日志条目吗?使用logger.*
。如果(且仅当!)这成为性能问题,则对其进行更改。在那之前,这是一个你不知道是否需要的优化。
logging
的优点:
logging.info(...)
时,您就知道您正在编写一条日志消息。
这是惯用的。这就是您编写 Python 日志的方式。
效率很高。也许不是非常高效,但它被彻底使用了,它有很多很好的优化(比如不在日志消息上运行字符串插值,因为日志级别等不会发出)。
logging
的缺点:
logging
版本)。
除非您知道它不够高效,否则我强烈建议您使用它。同样,如果数据证明它不够用,您以后可以随时更换它。
【讨论】:
【参考方案2】:除非您遇到内置功能问题,否则最好使用内置工具。
所以,请使用内置的日志记录功能。它经过验证、测试并且非常灵活 - 这是 open() -> f.write() -> close()
无法实现的。
【讨论】:
以上是关于Python 日志记录与写入文件的主要内容,如果未能解决你的问题,请参考以下文章