improved how the default logger is initialized
This commit is contained in:
+15
-7
@@ -33,7 +33,7 @@ __all__ = tuple(logging__all__ + [
|
||||
'set_default_logger',
|
||||
'warning',
|
||||
])
|
||||
__version__ = '0.1.6'
|
||||
__version__ = '0.1.7'
|
||||
__author__ = 'Eishausener <code@eishausener.de>'
|
||||
__name__ = 'eh_logging'
|
||||
|
||||
@@ -49,6 +49,9 @@ _DEBUG = False
|
||||
class DEFAULT:
|
||||
# -- Default Logger Name -- #
|
||||
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 -- #
|
||||
SPACE_LOGGER_NAME = 11
|
||||
SPACE_LEVEL = 8
|
||||
@@ -111,10 +114,10 @@ def _init():
|
||||
_logger = getLogger(DEFAULT.LOGGER_NAME)
|
||||
_changed = True
|
||||
|
||||
if not _logger.handlers:
|
||||
if not _logger.hasHandlers():
|
||||
print_debug(f'[DEBUG] adding stream handler to logger. (addr: {id(_logger)})')
|
||||
_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)
|
||||
_changed = True
|
||||
|
||||
@@ -611,14 +614,19 @@ def _init_default_logger():
|
||||
Initialize the default logger with a formatted logger
|
||||
:return:
|
||||
"""
|
||||
removed = False
|
||||
_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()
|
||||
_handler = StreamHandler()
|
||||
_handler.setFormatter(_formatter)
|
||||
_handler.name = 'eh_logging-stream-default' # should not be displayed. only for internal use
|
||||
# remove all handlers to prevent duplicate handlers
|
||||
for handler in _logger.handlers:
|
||||
_logger.removeHandler(handler)
|
||||
_handler.name = DEFAULT.HANDLER_NAME_STREAM # should not be displayed. only for internal use
|
||||
_logger.addHandler(_handler)
|
||||
_default_logger.set(_logger)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user