python - 使用信息级别记录不会产生任何输出

标签 python python-3.x logging

我使用 Python shell 运行了以下命令,并从命令行将其作为 Python 文件运行。我根本看不到我的日志输出。

import logging

formatter = logging.Formatter('%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s')

stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)

logger = logging.getLogger()
logger.addHandler(stream_handler)
logger.info(("info logging"))

最佳答案

您的日志输出几乎是正确的,但 setLevel 除外。 。日志记录级别需要在记录器实例而不是处理程序实例上定义。因此,您的代码只需要进行很小的调整即可使其工作:

import logging

formatter = logging.Formatter(
    '%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s'
)

stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)

logger = logging.getLogger()
logger.addHandler(stream_handler)
logger.setLevel(logging.INFO)

logger.info("info logging")

这段代码产生以下输出:

2019-08-21 15:04:55,118,118 INFO     [testHandler.py:11] info logging

请注意,我还删除了 logger.info 调用中的双括号,因为这些不是必需的。

关于python - 使用信息级别记录不会产生任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57597721/

相关文章:

python - 在命令期间将日志记录重定向到控制台

c++ - 如何在 C++ 中读取不断增长的文本文件?

Android Logcat 在模拟器中运行良好,在真实设备中运行不佳

python - 将float字符串转换为json中的float

Python Google Drive API,上传内存中的数据而不是磁盘上的文件?

python - 如何在 Python 中将 .EPS 文件保存为透明的 PNG

python-3.x - 如何将 pylint 选项卡宽度从 4 个空格更改为 2 个空格?

python - 如何向 pandas.TimeGrouper 添加填充

python - 将 django sqlite 数据库迁移到 postgresql

python - 核心和线程的多处理功能