3 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
最佳實(shí)踐是在每個(gè)模塊中都定義一個(gè)記錄器,如下所示:
import logging
logger = logging.getLogger(__name__)
在模塊頂部附近,然后在模塊中的其他代碼中執(zhí)行例如
logger.debug('My message with %s', 'variable data')
如果您需要在模塊內(nèi)部細(xì)分日志記錄活動(dòng),請(qǐng)使用例如
loggerA = logging.getLogger(__name__ + '.A')
loggerB = logging.getLogger(__name__ + '.B')
并登錄loggerA并loggerB視情況而定。
在您的一個(gè)或多個(gè)主程序中,執(zhí)行例如:
def main():
"your program code"
if __name__ == '__main__':
import logging.config
logging.config.fileConfig('/path/to/logging.conf')
main()
要么
def main():
import logging.config
logging.config.fileConfig('/path/to/logging.conf')
# your program code
if __name__ == '__main__':
main()
見這里用于從多個(gè)模塊記錄,并在這里用于代碼日志配置將被用作其它的代碼庫模塊。
更新:調(diào)用時(shí)fileConfig(),您可能想指定disable_existing_loggers=False是否使用Python 2.6或更高版本(有關(guān)更多信息,請(qǐng)參閱文檔)。缺省值是True為了向后兼容,fileConfig()除非所有現(xiàn)有記錄器或其祖先在配置中被明確命名,否則它將被禁用。將該值設(shè)置為False,將保留現(xiàn)有記錄器。如果使用的是Python 2.7 / Python 3.2或更高版本,則不妨考慮使用dictConfig()API,fileConfig()因?yàn)樗梢愿玫乜刂婆渲?,因此它比API更好
添加回答
舉報(bào)