# vim: set filencoding=utf8 """ Logging Utlities for obalie @author: Mike Crute (mcrute@ag.com) @organization: SoftGroup Interactive, Inc. @date: April 20, 2010 """ import sys import logging from logging import Formatter, StreamHandler from functools import wraps # Setup root logger root_logger = logging.getLogger('obalie') # If the root logger is not already configured then we # should probably configure it with some sane defaults. if root_logger.level == logging.NOTSET: # XXX: RESET THIS! # root_logger.setLevel(logging.WARN) root_logger.setLevel(logging.DEBUG) handler = StreamHandler(sys.stdout) formatter = Formatter('%(asctime)s %(levelname)s %(name)s %(message)s') handler.setFormatter(formatter) root_logger.addHandler(handler) def inject_logger(cls): """ Injects a logger into the kwargs for a class. """ @wraps(cls) def decorator(*args, **kwargs): inst = args[0] # self kwargs['logger'] = logging.getLogger('.'.join([inst.__module__, inst.__class__.__name__])) cls(*args, **kwargs) return decorator