Python日志记录与写入文件

时间:2016-04-24 05:15:42

标签: python logging file-writing bigdata

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

PS。我们正在为大学积累查询日志,因此很快就会变成大数据(考虑到每天查询日志的最小 - 最大上限为3GB-9GB,并且它将持续一生24/7)。如果您能够及时解释和区分非常详细的效率并且容易出错,我们将不胜感激。

2 个答案:

答案 0 :(得分:4)

使用更贴切地描述您尝试做的事情的方法。你在做日志条目吗?使用logger.*。如果(并且仅当!)成为性能问题,则更改它。在此之前,如果您需要,那么这是您不知道的优化。

logging的优点

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

logging的缺点:

  • 它没有发明自己的解决方案那么有趣(它总是变成一个无意识的,测试不良,效率较低的logging版本。)

直到您知道它不够有效,我强烈建议您使用它。同样,如果数据证明它不够,您可以随后更换它。

答案 1 :(得分:0)

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

因此,请使用内置日志记录功能。它经过验证,测试且非常灵活 - 使用open() -> f.write() -> close()无法实现的目标。