"""
Global logger setup
Must be used by the whole application
The default format can be restored at any time with
LoggerSetup.set_default_format()
The log level can be set at any time with
LoggerSetup.set_debug/info/warning/error_level
The level is set at INFO by default
Created on 4 December 2019
@author: michel
"""
import sys
import logging
[docs]
class LoggerSetup:
"""
manage the logger setup
"""
__default_level = logging.INFO
[docs]
@staticmethod
def get_logger():
"""
Format and return the system logger
:return : system logger
:rtype: logger
"""
LoggerSetup.set_default_format()
return logging.getLogger()
[docs]
@staticmethod
def restore_default_level():
"""
restore the message level with the last value set by a setter
INFO by default
"""
logging.getLogger().setLevel(LoggerSetup.__default_level)
[docs]
@staticmethod
def set_debug_level():
"""
Switch to debug level
"""
LoggerSetup.__default_level = logging.DEBUG
logging.getLogger().setLevel(logging.DEBUG)
[docs]
@staticmethod
def set_info_level():
"""
Switch to info level
"""
LoggerSetup.__default_level = logging.INFO
logging.getLogger().setLevel(logging.INFO)
[docs]
@staticmethod
def set_warning_level():
"""
Switch to warning level
"""
LoggerSetup.__default_level = logging.WARN
logging.getLogger().setLevel(logging.WARN)
[docs]
@staticmethod
def set_error_level():
"""
Switch to error level
"""
LoggerSetup.__default_level = logging.ERROR
logging.getLogger().setLevel(logging.ERROR)