Python 日志记录与写入文件

Python logging vs. write to file

哪个效率更高?与使用 logger.info() 相比,使用 open() -> write() -> close() 有缺点吗?

PS。我们正在为一所大学积累查询日志,因此它有可能很快成为大数据(考虑到每天查询日志的最小-最大上限为 3GB-9GB,并且它将 运行 24/7 不断地持续一段时间寿命)。如果您能非常详细地解释和区分时间效率和容易出错的方面,我们将不胜感激。

使用更准确地描述您要执行的操作的方法。你在做日志条目吗?使用 logger.*。如果(且仅当!)成为性能问题,则更改它。在那之前,这是一种您不知道是否需要的优化。

logging的优势:

  • 它是语义化的。当您看到 logging.info(...) 时,您就知道您正在编写日志消息。
  • 这是惯用语。这就是您编写 Python 日志的方式。
  • 效率很高。可能不是 非常 高效,但它的使用如此彻底以至于它有很多不错的优化(比如 not 运行 日志消息上的字符串插值不会因为日志级别而发出,等)。

logging 的缺点:

  • 它没有发明您自己的解决方案那么有趣(它总是会变成一个功能不佳、测试不佳、效率较低的 logging 版本)。

在您知道它不够高效之前,我强烈建议您使用它。同样,如果数据证明它不够用,您以后可以随时更换它。

除非您遇到内置功能的问题,否则最好使用内置工具。

所以,使用内置的日志记录功能。它经过验证、测试并且 非常灵活 - 这是 open() -> f.write() -> close() 无法实现的。