如何在Python中创建新的自定义记录器函数
我想如何在Python中创建新的自定义记录器函数,python,python-2.7,python-3.x,logging,Python,Python 2.7,Python 3.x,Logging,我想创建新的自定义记录器功能。 我们有如下可用的默认函数 logger.debug('debug message') logger.info('info message') logger.warn('warn message') logger.error('error message') logger.critical('critical message') 如何使用自定义代码创建新的自定义记录器函数。 自定义记录器,如下面的示例所示- logger.s
创建新的自定义记录器功能。
我们有如下可用的默认函数
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
如何使用自定义代码创建新的自定义记录器函数。
自定义记录器,如下面的示例所示-
logger.success('success message')
鉴于当前的日志库并不能真正满足这一要求,我能想到的唯一方法是创建logging.logger类的子类并定义自己的成功方法
例如:
import logging
SUCCESS = 5
logging.addLevelName(5, 'SUCCESS')
class Logger(logging.Logger):
super(logging.Logger)
def success(self, msg, *args, **kwargs):
if self.isEnabledFor(SUCCESS):
self._log(SUCCESS, msg, args, **kwargs)
formatter = logging.Formatter('%(levelname)s - %(name)s - %(message)s')
ch = logging.StreamHandler()
ch.setFormatter(formatter)
log = Logger('mycustomlogger')
log.setLevel(SUCCESS)
log.addHandler(ch)
log.success('Hello World')
super
调用在这里做什么?我通常只看到在方法定义中调用它。事后看来,它可能什么都不做,因为我们已经从指定的类继承了