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 threading import Thread, active_count
|
||||||
|
|
||||||
from src.access import Access
|
from src.access import Access
|
||||||
|
from src.util.helpers import ColoredFormatter
|
||||||
from src.docx_converter.docx_solver import DocxBook
|
from src.docx_converter.docx_solver import DocxBook
|
||||||
from src.epub_converter.epub_solver import EpubBook
|
from src.epub_converter.epub_solver import EpubBook
|
||||||
|
|
||||||
def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+',
|
def configure_file_logger(name, filename='logs/converter_log.log', filemode='w+',
|
||||||
logging_level=logging.INFO,
|
logging_level=logging.INFO):
|
||||||
logging_format='%(asctime)s - %(levelname)s - %(message)s'):
|
|
||||||
logger = logging.getLogger(name)
|
logger = logging.getLogger(name)
|
||||||
|
|
||||||
folder_path = os.path.dirname(os.path.abspath(__file__))
|
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)
|
file_handler = logging.FileHandler(file_path, mode=filemode)
|
||||||
logger.addHandler(file_handler)
|
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)
|
file_handler.setFormatter(file_format)
|
||||||
logger.setLevel(logging_level)
|
logger.setLevel(logging_level)
|
||||||
return logger
|
return logger
|
||||||
|
|||||||
@@ -2,10 +2,30 @@ import os
|
|||||||
import logging
|
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:
|
class BookLogger:
|
||||||
def __init__(self, name, book_id, main_logger=None,
|
def __init__(self, name, book_id, main_logger=None,
|
||||||
filemode='w+', logging_level=logging.INFO,
|
filemode='w+', logging_level=logging.INFO):
|
||||||
logging_format='%(asctime)s - %(levelname)s - %(message)s'):
|
|
||||||
"""
|
"""
|
||||||
Method for Logger configuration. Logger will write to file.
|
Method for Logger configuration. Logger will write to file.
|
||||||
:param name: name of the Logger.
|
:param name: name of the Logger.
|
||||||
@@ -23,7 +43,7 @@ class BookLogger:
|
|||||||
filename = f'logs/{book_id}_log.log'
|
filename = f'logs/{book_id}_log.log'
|
||||||
file_path = os.path.join(folder_path, filename)
|
file_path = os.path.join(folder_path, filename)
|
||||||
file_handler = logging.FileHandler(file_path, mode=filemode)
|
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)
|
file_handler.setFormatter(file_format)
|
||||||
self.logger.addHandler(file_handler)
|
self.logger.addHandler(file_handler)
|
||||||
self.logger.setLevel(logging_level)
|
self.logger.setLevel(logging_level)
|
||||||
|
|||||||
Reference in New Issue
Block a user