【发布时间】:2018-04-26 05:28:08
【问题描述】:
用一个不错的记录器编写代码
import logging
def init_logging():
logFormatter = logging.Formatter("[%(asctime)s] %(levelname)s::%(module)s::%(funcName)s() %(message)s")
rootLogger = logging.getLogger()
LOG_DIR = os.getcwd() + '/' + 'logs'
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
fileHandler = logging.FileHandler("{0}/{1}.log".format(LOG_DIR, "g2"))
fileHandler.setFormatter(logFormatter)
rootLogger.addHandler(fileHandler)
rootLogger.setLevel(logging.DEBUG)
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
rootLogger.addHandler(consoleHandler)
return rootLogger
logger = init_logging()
按预期工作。使用logger.debug("Hello! :)") 记录到文件和控制台。
在第二步中,您要导入一个外部模块,该模块也使用日志模块进行日志记录:
- 使用
pip3 install pymisp(或任何其他外部模块)安装它 - 使用
from pymisp import PyMISP(或任何其他外部模块)导入它 - 使用
self.pymisp = PyMISP(self.ds_model.api_url, self.ds_model.api_key, False, 'json')(或任何其他...)创建它的对象
现在发生的情况是,导入模块的每个调试日志输出都被记录到日志文件和控制台。 现在的问题是,如何为导入的模块设置不同的(更高的)日志级别。
【问题讨论】:
-
如果google把你带到这里,最好使用
logging.getLogger('modulename').setLevel(logging.DEBUG)而不是直接从模块中操作日志对象。
标签: python python-3.x logging python-import