我写了一个简短的脚本,定期轮询一个网站,并发布投票结果。
我认为使用python的内置日志记录机制来做到这一点很聪明:
# Main Script
twitter_handler = TwitterHandler(config=args.get('twitter-config'))
logger.addHandler(twitter_handler)
logger.debug('Debug', extra={'tweet': True})
# Handler
class TwitterHandler(logging.Handler):
def __init__(self, config=None):
logging.Handler.__init__(self, **kwargs)
# Do whatever setup is necessary
def emit(self, record):
if getattr(record, 'tweet', False):
# tweet
我还想介绍更复杂的日志处理,如果情况没有改变,只会频繁发推文。
在那一点上,我认为我应该把它分成三种类型的处理程序来解耦它们:
TweetHandler
:实际发推文消息ConditionalHandler
:仅在满足某些条件时记录PeriodicHandler
:仅根据某些定期规则进行记录假设我将功能分解为不同的处理程序,我该如何组合它们?某种元类或类装饰器?