48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
# SPDX-FileCopyrightText: 2021 Blender Studio Tools Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import logging
|
|
from typing import List, Tuple
|
|
|
|
|
|
class LoggerFactory:
|
|
|
|
"""
|
|
Utility class to streamline logger creation
|
|
"""
|
|
|
|
@staticmethod
|
|
def getLogger(name="blender-kitsu"):
|
|
name = name
|
|
logger = logging.getLogger(name)
|
|
return logger
|
|
|
|
|
|
logger = LoggerFactory.getLogger(__name__)
|
|
|
|
|
|
class LoggerLevelManager:
|
|
logger_levels: List[Tuple[logging.Logger, int]] = []
|
|
|
|
@classmethod
|
|
def configure_levels(cls):
|
|
cls.logger_levels = []
|
|
for key in logging.Logger.manager.loggerDict:
|
|
if key.startswith("urllib3"):
|
|
# Save logger and value.
|
|
log = logging.getLogger(key)
|
|
cls.logger_levels.append((log, logger.level))
|
|
|
|
log.setLevel(logging.CRITICAL)
|
|
|
|
# Set root logger level.
|
|
logging.getLogger().setLevel(logging.INFO)
|
|
logger.info("Configured logging Levels")
|
|
|
|
@classmethod
|
|
def restore_levels(cls):
|
|
for logger, level in cls.logger_levels:
|
|
logger.setLevel(level)
|
|
logger.info("Restored logging Levels")
|