[logging] Switching to mondrian, who got all our formating code.

This commit is contained in:
Romain Dorgueil
2017-11-01 19:57:51 +01:00
parent 7035cc01e0
commit 58923f4a84
3 changed files with 9 additions and 93 deletions

View File

@ -1,12 +1,12 @@
import argparse
import traceback
import logging
import mondrian
from bonobo import settings, logging
from bonobo import settings
from bonobo.commands.base import BaseCommand, BaseGraphCommand
from bonobo.util.errors import print_error
logger = logging.get_logger()
def entrypoint(args=None):
"""
@ -16,6 +16,8 @@ def entrypoint(args=None):
"""
logger = mondrian.getLogger()
parser = argparse.ArgumentParser()
parser.add_argument('--debug', '-D', action='store_true')
@ -48,7 +50,7 @@ def entrypoint(args=None):
if parsed_args.pop('debug', False):
settings.DEBUG.set(True)
settings.LOGGING_LEVEL.set(logging.DEBUG)
logging.set_level(settings.LOGGING_LEVEL.get())
logger.setLevel(settings.LOGGING_LEVEL.get())
logger.debug('Command: ' + parsed_args['command'] + ' Arguments: ' + repr(parsed_args))

View File

@ -1,12 +1,12 @@
import argparse
import logging
import runpy
import sys
from contextlib import contextmanager
import bonobo.util.environ
from bonobo import logging
from bonobo.util.environ import get_argument_parser, parse_args
from bonobo.util import get_name
from bonobo.util.environ import get_argument_parser, parse_args
class BaseCommand:
@ -20,7 +20,7 @@ class BaseCommand:
try:
return self._logger
except AttributeError:
self._logger = logging.get_logger(get_name(self))
self._logger = logging.getLogger(get_name(self))
return self._logger
def add_arguments(self, parser):

View File

@ -1,86 +0,0 @@
import logging
import sys
import textwrap
from logging import CRITICAL, DEBUG, ERROR, INFO, WARNING
from colorama import Fore, Style
from bonobo import settings
from bonobo.util.term import CLEAR_EOL
iswindows = (sys.platform == 'win32')
def get_format():
yield '{b}[%(fg)s%(levelname)s{b}][{w}'
yield '{b}][{w}'.join(('%(spent)04d', '%(name)s'))
yield '{b}]'
yield ' %(fg)s%(message)s{r}'
if not iswindows:
yield CLEAR_EOL
colors = {
'b': '' if iswindows else Fore.BLACK,
'w': '' if iswindows else Fore.LIGHTBLACK_EX,
'r': '' if iswindows else Style.RESET_ALL,
}
format = (''.join(get_format())).format(**colors)
class Filter(logging.Filter):
def filter(self, record):
record.spent = record.relativeCreated // 1000
if iswindows:
record.fg = ''
elif record.levelname == 'DEBG':
record.fg = Fore.LIGHTBLACK_EX
elif record.levelname == 'INFO':
record.fg = Fore.LIGHTWHITE_EX
elif record.levelname == 'WARN':
record.fg = Fore.LIGHTYELLOW_EX
elif record.levelname == 'ERR ':
record.fg = Fore.LIGHTRED_EX
elif record.levelname == 'CRIT':
record.fg = Fore.RED
else:
record.fg = Fore.LIGHTWHITE_EX
return True
class Formatter(logging.Formatter):
def formatException(self, ei):
tb = super().formatException(ei)
if iswindows:
return textwrap.indent(tb, ' | ')
else:
return textwrap.indent(tb, Fore.BLACK + ' | ' + Fore.WHITE)
def setup(level):
logging.addLevelName(DEBUG, 'DEBG')
logging.addLevelName(INFO, 'INFO')
logging.addLevelName(WARNING, 'WARN')
logging.addLevelName(ERROR, 'ERR ')
logging.addLevelName(CRITICAL, 'CRIT')
handler = logging.StreamHandler(sys.stderr)
handler.setFormatter(Formatter(format))
handler.addFilter(Filter())
root = logging.getLogger()
root.addHandler(handler)
root.setLevel(level)
def set_level(level):
logging.getLogger().setLevel(level)
def get_logger(name='bonobo'):
return logging.getLogger(name)
# Compatibility with python logging
getLogger = get_logger
# Setup formating and level.
setup(level=settings.LOGGING_LEVEL.get())