使用 Python 记录变量的推荐方法logging是什么,为什么更好?
旧式插值:
apple = "green"
logger.debug("apple is %s", apple)
Run Code Online (Sandbox Code Playgroud)
或者
新风格 .format()
logger.debug("apple is {}".format(apple))
Run Code Online (Sandbox Code Playgroud)
我听说插值是首选的,因为它只评估要打印的字符串,但我还没有验证它是否真的很重要。
logger.debug("apple is {}".format(apple))
Run Code Online (Sandbox Code Playgroud)
logger.debug(f"apple is {apple}")
Run Code Online (Sandbox Code Playgroud)
新式格式化将始终构建一个 string。如果这很昂贵(例如记录一个大的 pandas DataFrame),这将影响性能。
logger.debug("apple is %s", apple)
Run Code Online (Sandbox Code Playgroud)
如果消息实际上最终被记录,旧式插值仅构建日志字符串。如果您的应用程序的日志级别是 INFO/WARNING/ERROR/CRITICAL 之一,则它只会记录至少该日志级别的消息。因此这个调试级别的消息不会被记录并且插值被跳过。
总之,是的,插值可以节省格式化工作(有效地调用__str__)——这是否真的重要取决于您的应用程序。
| 归档时间: |
|
| 查看次数: |
2609 次 |
| 最近记录: |