gpt4 book ai didi

Python 3.7 日志记录 : f-strings vs %

转载 作者:太空狗 更新时间:2023-10-29 21:30:20 33 4
gpt4 key购买 nike

<分区>

我在项目中遇到性能问题,我将其缩小到一些日志行。似乎即使我的日志记录工具高于正在记录的行的级别,也会计算 f 字符串。

考虑这个例子来演示这个问题:

import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('MyLogger')

class MyClass:
def __init__(self, name: str) -> None:
self._name = name
def __str__(self) -> str:
print('GENERATING STRING')
return self._name

c = MyClass('foo')
logger.debug(f'Created: {c}')

当这个例子运行时,我在屏幕上打印了“GENERATING STRING”,表明 __str__ 方法正在运行,即使我的日志记录级别设置为 INFO日志行用于 DEBUG

据我今天所知,解决方案是使用以下 vs 一个 f 字符串。

logger.debug('Created: %s', c)

现在我脑子里闪过三件事。

  • 我阅读的大多数示例和文档似乎都很陈旧。
  • 此项目仅适用于 Python 3.7+(不担心向后兼容)。
  • 我有很多行代码要更新。

我很想知道其他人在这种情况下会怎么做。 %s 是最好的(最现代的)方法吗?是否有更现代的方式我应该像上面演示的那样记录日志?

我有很多代码要更新(修复),我希望与现代最佳实践保持一致。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com