我有三个模块,loglib,main和submod。
loglib保存我的记录器的配置,main是我的主程序,submod是一个子模块。
主要:
UploadDocument
submod:
import os
import loglib
import logging
import submod
logger = logging.getLogger(__name__)
scriptname=os.path.splitext(os.path.basename(__file__))[0]
loglib.configure_logger(LOGFILE=scriptname,LOGLEVEL='DEBUG')
logger.info("Starting")
submod.printsomething("calling module")
logger.debug("Stopping")
我正在尝试在submod(仅此一种)中更改记录器的格式以包括记录器名称,但是它不起作用。上面的输出是:
import logging
logger = logging.getLogger("submod")
formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s', datefmt='%d.%m.%Y %H:%M:% S')
for h in logging.getLogger().handlers:
h.setFormatter(formatter)
logger.addHandler(h)
def printsomething(text):
logger.info("In function printsomething")
logger.info(text)
我希望第二和第三行看起来像这样:
07.11.2018 14:58:30 INFO Starting
07.11.2018 14:58:30 INFO In function printsomething
07.11.2018 14:58:30 INFO calling module
07.11.2018 14:58:30 DEBUG Stopping
因此,显然获取根记录程序处理程序并更改其格式化程序并将其添加到submod-logger是错误的方法。有人知道正确的方法是什么吗?