如何在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
调用在这里做什么?我通常只看到在方法定义中调用它。事后看来,它可能什么都不做,因为我们已经从指定的类继承了