1 Commits

Author SHA1 Message Date
Eishausener aa9174ebaf improved how the default logger is initialized 2024-04-22 16:10:48 +02:00
+15 -7
View File
@@ -33,7 +33,7 @@ __all__ = tuple(logging__all__ + [
'set_default_logger', 'set_default_logger',
'warning', 'warning',
]) ])
__version__ = '0.1.6' __version__ = '0.1.7'
__author__ = 'Eishausener <code@eishausener.de>' __author__ = 'Eishausener <code@eishausener.de>'
__name__ = 'eh_logging' __name__ = 'eh_logging'
@@ -49,6 +49,9 @@ _DEBUG = False
class DEFAULT: class DEFAULT:
# -- Default Logger Name -- # # -- Default Logger Name -- #
LOGGER_NAME = 'eh_logging' LOGGER_NAME = 'eh_logging'
# -- Default Handler internal name -- #
HANDLER_NAME_STREAM = 'eh_logging-stream-default'
HANDLER_NAME_TEMP_STREAM = 'eh_logging-stream-helper'
# -- Logger Space -- # # -- Logger Space -- #
SPACE_LOGGER_NAME = 11 SPACE_LOGGER_NAME = 11
SPACE_LEVEL = 8 SPACE_LEVEL = 8
@@ -111,10 +114,10 @@ def _init():
_logger = getLogger(DEFAULT.LOGGER_NAME) _logger = getLogger(DEFAULT.LOGGER_NAME)
_changed = True _changed = True
if not _logger.handlers: if not _logger.hasHandlers():
print_debug(f'[DEBUG] adding stream handler to logger. (addr: {id(_logger)})') print_debug(f'[DEBUG] adding stream handler to logger. (addr: {id(_logger)})')
_handler = StreamHandler() _handler = StreamHandler()
_handler.name = 'eh_logging-stream-helper' # should not be displayed. only for internal use _handler.name = DEFAULT.HANDLER_NAME_TEMP_STREAM # should not be displayed. only for internal use
_logger.addHandler(_handler) _logger.addHandler(_handler)
_changed = True _changed = True
@@ -611,14 +614,19 @@ def _init_default_logger():
Initialize the default logger with a formatted logger Initialize the default logger with a formatted logger
:return: :return:
""" """
removed = False
_logger = getLogger(DEFAULT.LOGGER_NAME) _logger = getLogger(DEFAULT.LOGGER_NAME)
for handler in _logger.handlers:
if handler.name == DEFAULT.HANDLER_NAME_TEMP_STREAM:
# remove temp handler
_logger.removeHandler(handler)
removed = True
if removed or not _logger.hasHandlers():
# add new formatted stream handler
_formatter = FormatterColor() _formatter = FormatterColor()
_handler = StreamHandler() _handler = StreamHandler()
_handler.setFormatter(_formatter) _handler.setFormatter(_formatter)
_handler.name = 'eh_logging-stream-default' # should not be displayed. only for internal use _handler.name = DEFAULT.HANDLER_NAME_STREAM # should not be displayed. only for internal use
# remove all handlers to prevent duplicate handlers
for handler in _logger.handlers:
_logger.removeHandler(handler)
_logger.addHandler(_handler) _logger.addHandler(_handler)
_default_logger.set(_logger) _default_logger.set(_logger)