2017-07-15 45 views
4

運行下面的代碼打印出兩個信息:如何包括函數名到日誌

[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() 

回答

2

只需使用%(funcName)s,如記錄here