python - 如何将函数名称包含到日志记录中

标签 python logging

运行下面的代码会打印出两条消息:

[INFO] 2017-07-14 21:42:07, printed by func A
[INFO] 2017-07-14 21:42:07, printed by func B

我们知道logging模块的formatter方法可以用来自定义消息的格式。我们可以将其配置为使用当前时间或详细级别或日期等开始记录消息。我想知道是否有一种方法可以包含创建日志的函数名称。因此,每次使用 log.info() 方法时,都会有一个函数名称,甚至可能还有一个代码行号。

import logging
formatter = logging.Formatter("[%(levelname)s] %(asctime)s, %(message)s", "%Y-%m-%d %H:%M:%S")
handler = logging.StreamHandler()
handler.setFormatter(formatter)
log = logging.getLogger(__name__)
log.addHandler(handler)
log.setLevel(logging.DEBUG)


def funct_A():
    log.info('printed by func A')

def funct_B():
    log.info('printed by func B')


funct_A()
funct_B()

最佳答案

只需使用 %(funcName)s,如记录 here .

关于python - 如何将函数名称包含到日志记录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45114636/

相关文章:

python - 如何使用 pandas 中的 groupby 保留在另一列上具有最高值的列的值

java - 我在哪里可以看到程序中的日志

logging - SAS 9.4 存储过程日志文件监控

python - 循环遍历 pandas Dataframe 以从另一个 Dataframe 获取值

python - 如何在 FastAPI 中没有路由装饰器的情况下功能性地将函数分配给路由?

带有 TimedRotatingFileHandler 后缀的 Python Daily 记录器

http - 使用 nginx 真正记录 POST 请求正文(而不是 "-")

python - Django+heroku : django logs appear, 应用日志没有

python - 如何在 Tensorflow 2.2 中训练具有多个输入的 Keras 模型?

python - 在 Python 中处理未实现的参数