logging: add setLogger, fix getLogger, and add logger name if not default

This commit is contained in:
Izalia Mae 2021-05-22 08:28:53 -04:00
parent 5cd4eff2b0
commit c8d927abb3

View file

@ -10,7 +10,7 @@ stdout = sys.stdout
class Log():
def __init__(self, config=dict()):
def __init__(self, name=None, config=dict()):
'''setup the logger'''
if not isinstance(config, dict):
raise TypeError(f'config is not a dict')
@ -35,6 +35,7 @@ class Log():
'MERP': 'MERP'
}
self.name = name
self.config = {'windows': sys.executable.endswith('pythonw.exe')}
self.setConfig(self._parseConfig(config))
@ -123,13 +124,20 @@ class Log():
levelNum = self._lvlCheck(level)
if type(level) == int:
level = _getLevelName(level)
level = self._getLevelName(level)
if levelNum < self.config['levelnum']:
return
message = ' '.join([str(message) for message in msg])
output = f'{level}: {message}\n'
if self.name:
output = f'[{self.name}] '
else:
output = ''
output += f'{level}: {message}\n'
if self.config['systemnotif']:
self.config['systemnotif'].New(level, message)
@ -165,18 +173,21 @@ class Log():
self.log('MERP', *msg)
def getLogger(loginst, config=None):
def getLogger(name):
'''get a logging instance and create one if it doesn't exist'''
Logger = logger.get(loginst)
log = logger.get(name)
if not Logger:
if config:
logger[loginst] = Log(config)
if not log:
raise InvalidLogger(f'logger "{name}" doesn\'t exist')
else:
raise InvalidLogger(f'logger "{loginst}" doesn\'t exist')
return log
def setLogger(name, config={}):
log = Log(name, config)
logger[name.lower()] = log
return log
return logger[loginst]
class InvalidLevel(Exception):
'''Raise when an invalid logging level was specified'''