我想create new custom logger function.
我们有默认功能,如下所示
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
如何使用自定义代码创建新的自定义记录器功能。 自定义记录器如下例所示 -
logger.success('success message')
答案 0 :(得分:2)
鉴于当前的日志库并不能真正满足这一需求,我能想到你能够实现所要求的唯一方法就是创建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')