Adds Functionality to Logger

This commit is contained in:
2023-04-27 05:14:07 -03:00
parent 2d488bd749
commit 9c822c6848
5 changed files with 177 additions and 87 deletions

View File

@@ -1,27 +1,54 @@
import logging
def valid_logger(func):
def wrapper(*args, **kwargs):
logger = args[0]
assert logger._was_set, \
"Logger is not set. Please call set_logger() first."
return func(*args, **kwargs)
return wrapper
class Logger:
outfile = None
_logger = None
_instance = None
def __new__(cls, *args, **kwargs):
if not getattr(cls, '_instance'):
cls._instance = super(Logger, cls).__new__(cls)
return cls._instance
_was_set = False
def set_logger(self, logger_name, outfile='run.log', level=logging.INFO):
def __init__(self, logger_name):
if self._logger is None:
self._logger = logging.getLogger(logger_name)
def set_logger(self, outfile='run.log', level=logging.INFO):
self.outfile = outfile
self._logger = logging.getLogger(logger_name)
if level is not None:
self._logger.setLevel(level)
self._create_handlers()
self._was_set = True
@valid_logger
def info(self, message):
self._logger.info(message)
@valid_logger
def debug(self, message):
self._logger.debug(message)
@valid_logger
def warning(self, message):
self._logger.warning(message)
@valid_logger
def error(self, message):
self._logger.error(message)
def _create_handlers(self):
handlers = []
if self.outfile is not None: