我正在尝试将日志记录(到控制台而不是文件)添加到我一直在研究的一段代码中。阅读了一下,我有一个我认为应该工作的模式,但我不太确定我哪里出错了。
我有以下三个文件(显然是简化的):
控制器.py
import my_module
import logging
from setup_log import configure_log
def main():
logger = configure_log(logging.DEBUG, __name__)
logger.info('Started logging')
my_module.main()
if __name__ == "__main__":
main()
setup_log.py
import logging
def configure_log(level=None, name=None):
logger = logging.getLogger(name)
logger.setLevel(level)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
chFormatter = logging.Formatter('%(levelname)s - %(filename)s - Line: %(lineno)d - %(message)s')
console_handler.setFormatter(chFormatter)
logger.addHandler(console_handler)
return logger
我的模块.py
import logging
def main():
logger = logging.getLogger(__name__)
logger.info("Starting my_module")
print "Something"
if __name__ == "__main__":
main()
当我运行它们时,只有第一次调用 logging 才会向控制台输出输出 - “Started logging”。第二次调用日志——“启动我的模块”刚刚被忽略。
我误解/破坏了什么?