mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-03-12 20:45:47 +01:00
Changing logging module location.
This commit is contained in:
@@ -1,82 +0,0 @@
|
||||
"""
|
||||
A simplified logging system
|
||||
"""
|
||||
import logging
|
||||
|
||||
|
||||
class CustomFormatter(logging.Formatter):
|
||||
"""Logging Formatter to add colors and count warning / errors"""
|
||||
|
||||
grey = "\x1b[38;21m"
|
||||
yellow = "\x1b[33;21m"
|
||||
red = "\x1b[31;21m"
|
||||
bold_red = "\x1b[31;1m"
|
||||
reset = "\x1b[0m"
|
||||
fmt = "%(message)s"
|
||||
|
||||
FORMATS = {logging.DEBUG: grey + fmt + reset,
|
||||
logging.INFO: grey + fmt + reset,
|
||||
logging.WARNING: yellow + fmt + reset,
|
||||
logging.ERROR: red + fmt + reset,
|
||||
logging.CRITICAL: bold_red + fmt + reset}
|
||||
|
||||
def format(self, record):
|
||||
log_fmt = self.FORMATS.get(record.levelno)
|
||||
formatter = logging.Formatter(log_fmt)
|
||||
return formatter.format(record)
|
||||
|
||||
|
||||
class Logger:
|
||||
"""
|
||||
Logger class with output on console only
|
||||
"""
|
||||
def __init__(self, logger_name, color=False):
|
||||
"""
|
||||
Initialize named logger
|
||||
"""
|
||||
self._log = logging.getLogger(logger_name)
|
||||
self.setup_logger()
|
||||
self._log.set_verbose = self.set_verbose
|
||||
|
||||
def __call__(self):
|
||||
"""
|
||||
Calling this object will return configured logging.Logger object with
|
||||
additional set_verbose() method.
|
||||
"""
|
||||
return self._log
|
||||
|
||||
def set_verbose(self, verbose_level, quiet_level):
|
||||
"""
|
||||
Change verbosity level. Default level is warning.
|
||||
"""
|
||||
self._log.setLevel(logging.WARNING)
|
||||
|
||||
if quiet_level:
|
||||
self._log.setLevel(logging.ERROR)
|
||||
if quiet_level > 1:
|
||||
self._log.setLevel(logging.CRITICAL)
|
||||
|
||||
if verbose_level:
|
||||
self._log.setLevel(logging.INFO)
|
||||
if verbose_level > 1:
|
||||
self._log.setLevel(logging.DEBUG)
|
||||
|
||||
def setup_logger(self):
|
||||
"""
|
||||
Create setup instance and make output meaningful :)
|
||||
"""
|
||||
if self._log.handlers:
|
||||
# need only one handler
|
||||
return
|
||||
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.set_name("console")
|
||||
console_formatter = CustomFormatter()
|
||||
console_handler.setFormatter(console_formatter)
|
||||
self._log.addHandler(console_handler)
|
||||
self._log.setLevel(logging.WARNING)
|
||||
|
||||
|
||||
default_log = Logger('ebook-converter')()
|
||||
# TODO(gryf): remove this after providing value from cmd line/config
|
||||
default_log.set_verbose(2, 0)
|
||||
Reference in New Issue
Block a user