Implementation of Logger and Finishes DiceInterface Tests
This commit is contained in:
39
diceplayer/shared/utils/logger.py
Normal file
39
diceplayer/shared/utils/logger.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import logging
|
||||
|
||||
|
||||
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
|
||||
|
||||
def set_logger(self, logger_name, 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()
|
||||
|
||||
def _create_handlers(self):
|
||||
handlers = []
|
||||
if self.outfile is not None:
|
||||
handlers.append(logging.FileHandler(self.outfile, mode='a+'))
|
||||
else:
|
||||
handlers.append(logging.StreamHandler())
|
||||
|
||||
for handler in handlers:
|
||||
handler.setFormatter(logging.Formatter('%(message)s'))
|
||||
self._logger.addHandler(handler)
|
||||
|
||||
def close(self):
|
||||
for handler in self._logger.handlers:
|
||||
handler.close()
|
||||
self._logger.removeHandler(handler)
|
||||
@@ -1,15 +0,0 @@
|
||||
def NotNull(requiredArgs=[]):
|
||||
def _NotNull(function):
|
||||
def wrapper(*args, **kwargs):
|
||||
for arg in requiredArgs:
|
||||
try:
|
||||
assert (
|
||||
kwargs.get(arg) is not None
|
||||
), "Invalid Config File. Keyword {} is required".format(arg)
|
||||
except AssertionError as err:
|
||||
print(err)
|
||||
return function(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
return _NotNull
|
||||
Reference in New Issue
Block a user