首页 > 解决方案 > 在 Python 中使用 `logging` 模块的正确方法

问题描述

我正在尝试将日志添加到我的代码中,而不是打印所有内容。我阅读了许多其他帖子和文章,例如此处列出的那些,但我的代码中的日志没有打印出来。

这是一个例子:

# driver.py
import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

def main():
    logging.debug('This is a simple log')
    # other code here


if __name__ == "__main__":
     main()

但我的日志没有打印到stdout. 我究竟做错了什么?

另外,如果我想向多个文件添加日志记录,我可以在单独的文件中配置日志,例如在我的文件中导入该文件driver.pyhelper_funtions.py这样我就不必一遍又一遍地重复同样的事情?

标签: pythonlogging

解决方案


你需要一个 StreamHandler

ch = logging.StreamHandler()
logger.add_handler(ch)

日志记录手册提供了大量关于设置流处理程序以及记录到文件的示例。您甚至可以将日志的格式配置为 StdOut 看起来与文件的格式不同。

https://docs.python.org/3/howto/logging-cookbook.html#logging-cookbook


推荐阅读