我使用 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/