"""
Logger configuration for the package.
"""
import sys
from enum import StrEnum
import loguru
logger = loguru.logger
"Loguru logger instance for the package."
[docs]
class LogLevels(StrEnum):
"""
Enum class representing different log levels.
"""
DEBUG = "DEBUG"
INFO = "INFO"
WARNING = "WARNING"
ERROR = "ERROR"
CRITICAL = "CRITICAL"
TRACE = "TRACE"
[docs]
class LevelFilter:
def __init__(self, level: LogLevels):
self.level = level
[docs]
def __call__(self, record):
level_no = logger.level(self.level).no
return record["level"].no >= level_no
main_filter = LevelFilter(LogLevels.WARNING)
logger.remove()
stdout_handler = logger.add(sys.stdout, filter=main_filter, level=0)
logger.disable("pydistsim")
[docs]
def set_log_level(level: LogLevels):
main_filter.level = level
[docs]
def enable_logger():
logger.enable("pydistsim")
[docs]
def disable_logger():
logger.disable("pydistsim")