forked from LiveCarta/BookConverter
improve loggers
This commit is contained in:
@@ -9,12 +9,12 @@ from functools import partial
|
||||
from threading import Thread, active_count
|
||||
|
||||
from src.access import Access
|
||||
from src.util.helpers import ColoredFormatter
|
||||
from src.docx_converter.docx_solver import DocxBook
|
||||
from src.epub_converter.epub_solver import EpubBook
|
||||
|
||||
def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+',
|
||||
logging_level=logging.INFO,
|
||||
logging_format='%(asctime)s - %(levelname)s - %(message)s'):
|
||||
logging_level=logging.INFO):
|
||||
logger = logging.getLogger(name)
|
||||
|
||||
folder_path = os.path.dirname(os.path.abspath(__file__))
|
||||
@@ -22,7 +22,7 @@ def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+'
|
||||
|
||||
file_handler = logging.FileHandler(file_path, mode=filemode)
|
||||
logger.addHandler(file_handler)
|
||||
file_format = logging.Formatter(fmt=logging_format)
|
||||
file_format = ColoredFormatter('%(asctime)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)')
|
||||
file_handler.setFormatter(file_format)
|
||||
logger.setLevel(logging_level)
|
||||
return logger
|
||||
|
||||
@@ -2,10 +2,30 @@ import os
|
||||
import logging
|
||||
|
||||
|
||||
class ColoredFormatter(logging.Formatter):
|
||||
MAPPING = {
|
||||
'DEBUG': 37, # white
|
||||
'INFO': 36, # cyan
|
||||
'WARNING': 33, # yellow
|
||||
'ERROR': 31, # red
|
||||
'CRITICAL': 41, # white on red bg
|
||||
}
|
||||
|
||||
PREFIX = '\033['
|
||||
SUFFIX = '\033[0m'
|
||||
|
||||
def __init__(self, patern):
|
||||
logging.Formatter.__init__(self, patern)
|
||||
|
||||
def format(self, record):
|
||||
seq = self.MAPPING.get(record.levelname, 37) # default white
|
||||
record.levelname = ('{0}{1}m{2}{3}') \
|
||||
.format(self.PREFIX, seq, record.levelname, self.SUFFIX)
|
||||
return logging.Formatter.format(self, record)
|
||||
|
||||
class BookLogger:
|
||||
def __init__(self, name, book_id, main_logger=None,
|
||||
filemode='w+', logging_level=logging.INFO,
|
||||
logging_format='%(asctime)s - %(levelname)s - %(message)s'):
|
||||
filemode='w+', logging_level=logging.INFO):
|
||||
"""
|
||||
Method for Logger configuration. Logger will write to file.
|
||||
:param name: name of the Logger.
|
||||
@@ -23,7 +43,7 @@ class BookLogger:
|
||||
filename = f'logs/{book_id}_log.log'
|
||||
file_path = os.path.join(folder_path, filename)
|
||||
file_handler = logging.FileHandler(file_path, mode=filemode)
|
||||
file_format = logging.Formatter(fmt=logging_format)
|
||||
file_format = ColoredFormatter('%(asctime)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)')
|
||||
file_handler.setFormatter(file_format)
|
||||
self.logger.addHandler(file_handler)
|
||||
self.logger.setLevel(logging_level)
|
||||
|
||||
Reference in New Issue
Block a user