我正在使用logging
记录信息和错误。我编写了一个辅助函数来包装log函数。但是,由于日志记录是在此辅助函数内部执行的,因此所有日志记录属性都将成为该堆栈的属性。但是要记录的有意义的属性是上层堆栈的属性,即调用者的堆栈属性。我该如何解决?
示例代码:
# foo.py
import logging
import log_util
def main():
formatter = logging.Formatter(fmt = '%(module)s::%(funcName)s - %(message)s')
s_handler = logging.StreamHandler()
s_handler.setFormatter(formatter)
logger = logging.getLogger("main")
logger.setLevel(logging.DEBUG)
logger.addHandler(s_handler)
log_util.helper_log(logger, 'TEST info')
if __name__ == '__main__':
main()
# log_util.py
def helper_log(lg, msg):
# do something
msg2 = # result of a serial statements
lg.info(msg2)
实际输出:
log_util.py::helper_log - TEST info
预期输出:
foo.py::main - TEST info
答案 0 :(得分:0)
请勿尝试使用辅助功能执行此任务。记录器不应作为参数传递,而是每个模块都应创建并使用模块级(全局)记录器实例。
相反,使用channel.setPty(true);
实现您想要的。请参阅下面链接的文档中的部分: