import abc import logging from cloudinit.registry import DictRegistry class ReportingHandler(object): @abc.abstractmethod def publish_event(self, event): raise NotImplementedError class LogHandler(ReportingHandler): """Publishes events to the cloud-init log at the ``INFO`` log level.""" def publish_event(self, event): """Publish an event to the ``INFO`` log level.""" logger = logging.getLogger( '.'.join(['cloudinit', 'reporting', event.event_type, event.name])) logger.info(event.as_string()) available_handlers = DictRegistry() available_handlers.register_item('log', LogHandler)