如何将函数名称包含在日志记录中

时间:2017-07-15 04:54:00

标签: 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()

1 个答案:

答案 0 :(得分:5)

只需使用%(funcName)s,如文档here所示。