У нас есть несколько коммунальных библиотек, которые имеют внутренние вызовы регистрации. Я считаю, что они не должны распространяться в приложения, если только явно запрошен. Но это не идеально, поскольку критические вызовы все еще будут отображаться. < /P>
Как это сделать? Без прикосновения к уровням журнала?import logging
from utility_library import to_integer
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
handlers=[logging.StreamHandler()],
)
logger = logging.getLogger(__name__)
logger.debug("Starting verbose")
logger.info("Starting simple")
enable_utility_logging = True
if enable_utility_logging:
utility_logger = logging.getLogger("utility_library")
utility_logger.setLevel(logging.DEBUG)
try:
to_integer(1.234)
except Exception as e:
logger.error(e)
try:
to_integer("1.234")
except Exception as e:
logger.error(e)
< /code>
utility_library.py
import logging
logger = logging.getLogger(__name__)
# logger.addHandler(logging.NullHandler())
logger.setLevel(logging.CRITICAL) # is this needed?
def to_integer(value: int):
try:
logger.debug(f"Converting: {value} [{type(value)}]")
integer = int(value)
logger.info(f"Converted: {integer}")
return integer
except Exception as e:
logger.error(f"Failed to convert: {e}")
raise e
output - enable_utility_logging = false
2025-01-29 11:49:25,317 - __main__ - INFO - Starting simple
2025-01-29 11:49:25,332 - __main__ - ERROR - invalid literal for int() with base 10: '1.234'
output - enable_utility_logging = true
2025-01-29 11:48:19,238 - __main__ - INFO - Starting simple
2025-01-29 11:48:19,238 - utility_library - DEBUG - Converting: 1.234 []
2025-01-29 11:48:19,253 - utility_library - INFO - Converted: 1
2025-01-29 11:48:19,253 - utility_library - DEBUG - Converting: 1.234 []
2025-01-29 11:48:19,253 - utility_library - ERROR - Failed to convert: invalid literal for int() with base 10: '1.234'
2025-01-29 11:48:19,253 - __main__ - ERROR - invalid literal for int() with base 10: '1.234'
Подробнее здесь: https://stackoverflow.com/questions/793 ... by-default
Как заставить замолчать библиотеку утилит по умолчанию ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение