Skip to content

Instantly share code, notes, and snippets.

@gtalarico
Last active September 26, 2016 05:08
Show Gist options
  • Select an option

  • Save gtalarico/88cae585e7e8d16b111bc3790bcf9285 to your computer and use it in GitHub Desktop.

Select an option

Save gtalarico/88cae585e7e8d16b111bc3790bcf9285 to your computer and use it in GitHub Desktop.
Logger Wrapper
import logging
import sys
class LoggerWrapper():
""" Logger Wrapper to extend loggers functionality.
Usage:
logger = LoggerWrapper()
Additional Features:
logger.title('Message'): Outputs lines above and below, uses clean format
logger.error('Message'): appends errmsg to self.errors.
This allows you to check if an error occured,
if logger.errors:
#do somthing.
print(logger.errors)
> ['Message 1', 'Message 2', ... ]
Same calls as regular logger:
logger.info('Message')
logger.debug('Message')
"""
def __init__(self):
handler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter("[%(levelname)s] %(message)s")
handler.setFormatter(formatter)
logger = logging.getLogger('main')
logger.addHandler(handler)
logger.setLevel(logging.INFO)
handler_title = logging.StreamHandler(sys.stdout)
formatter_title = logging.Formatter("%(message)s")
handler_title.setFormatter(formatter_title)
logger_title = logging.getLogger('main_title')
logger_title.addHandler(handler_title)
logger_title.setLevel(logging.INFO)
self._logger = logger
self._logger_title = logger_title
self.errors = []
def verbose(self, verbose):
if verbose:
self._logger.setLevel(logging.DEBUG)
else:
self._logger.setLevel(logging.INFO)
def title(self, msg):
print('='*100)
self._logger_title.info(msg)
print('='*100)
def info(self, msg):
self._logger.info(msg)
def debug(self, msg):
self._logger.debug(msg)
def warning(self, msg):
self._logger.warning(msg)
def error(self, msg):
self._logger.error(msg)
self.errors.append(msg)
def critical(self, msg):
self._logger.critical(msg)
def setLevel(self, level):
self._logger.setLevel(level)
logger = LoggerWrapper()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment