Trying to weed out dual logging.

This commit is contained in:
Anton Hvornum 2020-03-16 20:49:15 +01:00
parent 0e8bbb946d
commit e0f1e1b5fd
1 changed files with 43 additions and 34 deletions

View File

@ -26,45 +26,54 @@ worker_history = oDict()
instructions = oDict() instructions = oDict()
args = {} args = {}
import logging create_log = True
from systemd.journal import JournalHandler
# Custom adapter to pre-pend the 'origin' key. try:
# TODO: Should probably use filters: https://docs.python.org/3/howto/logging-cookbook.html#using-filters-to-impart-contextual-information if 'log' in __builtins__.__dict__:
class CustomAdapter(logging.LoggerAdapter): create_log = False
def process(self, msg, kwargs): except:
return '[{}] {}'.format(self.extra['origin'], msg), kwargs if 'log' in __builtins__:
create_log = False
logger = logging.getLogger() # __name__ if create_log:
journald_handler = JournalHandler() import logging
journald_handler.setFormatter(logging.Formatter('[{levelname}] {message}', style='{')) from systemd.journal import JournalHandler
logger.addHandler(journald_handler)
logger.setLevel(logging.DEBUG)
class LOG_LEVELS: # Custom adapter to pre-pend the 'origin' key.
CRITICAL = 1 # TODO: Should probably use filters: https://docs.python.org/3/howto/logging-cookbook.html#using-filters-to-impart-contextual-information
ERROR = 2 class CustomAdapter(logging.LoggerAdapter):
WARNING = 3 def process(self, msg, kwargs):
INFO = 4 return '[{}] {}'.format(self.extra['origin'], msg), kwargs
DEBUG = 5
LOG_LEVEL = 4 logger = logging.getLogger() # __name__
journald_handler = JournalHandler()
journald_handler.setFormatter(logging.Formatter('[{levelname}] {message}', style='{'))
logger.addHandler(journald_handler)
logger.setLevel(logging.DEBUG)
def log(*msg, origin='UNKNOWN', level=5, **kwargs): class LOG_LEVELS:
if level <= LOG_LEVEL: CRITICAL = 1
msg = [item.decode('UTF-8', errors='backslashreplace') if type(item) == bytes else item for item in msg] ERROR = 2
msg = [str(item) if type(item) != str else item for item in msg] WARNING = 3
log_adapter = CustomAdapter(logger, {'origin': origin}) INFO = 4
if level <= 1: DEBUG = 5
log_adapter.critical(' '.join(msg))
elif level <= 2: LOG_LEVEL = 4
log_adapter.error(' '.join(msg)) def log(*msg, origin='UNKNOWN', level=5, **kwargs):
elif level <= 3: if level <= LOG_LEVEL:
log_adapter.warning(' '.join(msg)) msg = [item.decode('UTF-8', errors='backslashreplace') if type(item) == bytes else item for item in msg]
elif level <= 4: msg = [str(item) if type(item) != str else item for item in msg]
log_adapter.info(' '.join(msg)) log_adapter = CustomAdapter(logger, {'origin': origin})
else: if level <= 1:
log_adapter.debug(' '.join(msg)) log_adapter.critical(' '.join(msg))
elif level <= 2:
log_adapter.error(' '.join(msg))
elif level <= 3:
log_adapter.warning(' '.join(msg))
elif level <= 4:
log_adapter.info(' '.join(msg))
else:
log_adapter.debug(' '.join(msg))
## == Profiles Path can be set via --profiles-path=/path ## == Profiles Path can be set via --profiles-path=/path
## This just sets the default path if the parameter is omitted. ## This just sets the default path if the parameter is omitted.