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

alp*_*ric 7 python logging

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

[INFO] 2017-07-14 21:42:07, printed by func A
[INFO] 2017-07-14 21:42:07, printed by func B
Run Code Online (Sandbox Code Playgroud)

我们知道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()
Run Code Online (Sandbox Code Playgroud)

Vin*_*jip 8

只需使用%(funcName)s,如此处所述.