Python模块覆盖的日志记录设置
对于如何最好地在Python应用程序中设置日志,我有点困惑 我使用的是IBPy模块,其中包含: 我的应用程序由一堆导入Jupyter笔记本的文件组成。最终执行在笔记本内进行 目前,其他模块在“调试”级别启动,我的笔记本上充满了警告Python模块覆盖的日志记录设置,python,logging,Python,Logging,对于如何最好地在Python应用程序中设置日志,我有点困惑 我使用的是IBPy模块,其中包含: 我的应用程序由一堆导入Jupyter笔记本的文件组成。最终执行在笔记本内进行 目前,其他模块在“调试”级别启动,我的笔记本上充满了警告 在模块级配置日志记录的正确方法是什么?IBPy似乎没有遵循建议的做法-库不应该配置日志记录,只有应用程序应该配置日志记录。IBPy是否真正配置了日志记录?还是我做错了什么?我可以在不编辑模块本身的情况下重新配置它的日志记录吗(假设它是外部的)basicConfig()
在模块级配置日志记录的正确方法是什么?
IBPy
似乎没有遵循建议的做法-库不应该配置日志记录,只有应用程序应该配置日志记录。IBPy是否真正配置了日志记录?还是我做错了什么?我可以在不编辑模块本身的情况下重新配置它的日志记录吗(假设它是外部的)basicConfig()
行表明它可以。您可以重新配置它的日志记录,但根据它所做的,您可能无法完全避免其输出。这是因为它在日志记录方面表现不好。eyed3
库也是如此。我想知道这方面的解决方法。IBPy
似乎没有遵循建议的做法-库不应该配置日志记录,只有应用程序应该这样做。IBPy实际配置日志记录了吗?还是我做错了什么?我可以在不编辑模块本身的情况下重新配置它的日志记录吗(假设它是外部的)basicConfig()
行表明它可以。您可以重新配置它的日志记录,但根据它所做的,您可能无法完全避免其输出。这是因为它在日志记录方面表现不好。eyed3
库也是如此。我想知道一个解决办法。
import logging
import os
format = '%(asctime)s %(levelname)-9.9s %(message)s'
datefmt = '%d-%b-%y %H:%M:%S'
##
# Default log level. Set IBPY_LOGLEVEL environment variable to
# change this default.
level = int(os.environ.get('IBPY_LOGLEVEL', logging.DEBUG))
def logger(name='ibpy', level=level, format=format,
datefmt=datefmt):
logging.basicConfig(level=level, format=format, datefmt=datefmt)
return logging.getLogger(name)