用一个好的记录器写你的代码
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')
(或任何其他…)创建它的对象现在的情况是,导入模块的每个调试日志输出都被记录到日志文件和控制台中。现在的问题是,如何为导入的模块设置不同(更高)的日志级别。
我的一位同事帮我解答了这个问题:
yourLogger = logging.getLogger('your_logger')
为每个处理程序添加一个过滤器,以防止它们打印/保存除您的日志之外的其他日志
大多数使用日志记录的第三方模块都实现了一个记录器,并将其存储在模块级名为}的变量中。这意味着您可以提取记录器并使其适应您的需要。在您的情况下:
logger
或{相关问题 更多 >
编程相关推荐