繁体   English   中英

将logger作为参数传递给函数,并在日志文件中获取函数名称

[英]Passing logger as an argument to functions and get the function name in log file

我正在使用日志记录包为我的应用程序创建日志文件。 主要功能中,我创建了记录器,处理程序和格式化程序,并将记录级别设置如下:

try:
    os.remove('xxx.log')
except WindowsError:
    pass
LOG_FILENAME = 'xxx.log'
logger = logging.getLogger(__name__)
logger.setLevel(20)
ch = logging.FileHandler(LOG_FILENAME)
ch.setLevel(20)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
logger.addHandler(ch)

logger.info("info message")

然后,我调用了我也想拥有记录器的不同功能。 因此,我将logger作为该函数的参数传递,然后使用logger.info将信息记录在该函数中。 问题是我需要在日志文件中列出该函数的名称,因此我将其编码如下:

test(a, b, c, d, e, f, g, logger)
def test test(a, b, c, d, e, f, g, logger):
    logger = logging.getLogger(__name__)
    logger.info("test ....")

怎么了 如何解决该问题? 任何建议,以改善我的编码,也表示赞赏。

格式化程序需要更改为以下内容:

logging.Formatter("%(asctime)s - %(module)s - %(levelname)s - %(message)s")

因此,需要根据文档来实现%(name),而需要实现%(module)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM