assets/inference/environments/mlflow-py312-inference/context/mlmonitoring/logger/logger.py (134 lines of code) (raw):
"""For logger."""
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
import os
import sys
from typing import Any, Dict
import logging
from logging.config import dictConfig
logger = logging.getLogger("mdc")
DEFAULT_SDK_LOGGING_CONFIG: Dict[str, Any] = dict(
version=1,
disable_existing_loggers=False,
loggers={
"mdc": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"mdc.root": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"mdc.collector": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"mdc.worker": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"local.capture": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"mdc.sender": {
"level": "WARN",
"propagate": False,
"handlers": ["console"]
},
"mdc.error": {
"level": "ERROR",
"handlers": ["error_console"],
"propagate": False,
"qualname": "mdc.error",
},
},
handlers={
"console": {
"class": "logging.StreamHandler",
"formatter": "generic",
"stream": sys.stdout,
},
"error_console": {
"class": "logging.StreamHandler",
"formatter": "generic",
"stream": sys.stderr,
},
},
formatters={
"generic": {
"format": "%(asctime)s | %(name)s | %(levelname)s | %(message)s",
# "datefmt": "%Y-%m-%d %H:%M:%S",
"class": "logging.Formatter",
},
},
)
DEBUG_SDK_LOGGING_CONFIG: Dict[str, Any] = dict(
version=1,
disable_existing_loggers=False,
loggers={
"mdc": {
"level": "DEBUG",
"propagate": False,
"handlers": ["console"]
},
"mdc.root": {
"level": "DEBUG",
"propagate": False,
"handlers": ["console"]
},
"mdc.collector": {
"level": "DEBUG",
"propagate": False,
"handlers": ["console"]
},
"mdc.worker": {
"level": "DEBUG",
"propagate": False,
"handlers": ["console"]
},
"local.capture": {
"level": "DEBUG",
"propagate": False,
"handlers": ["console"]
},
"mdc.sender": {
"level": "INFO",
"propagate": False,
"handlers": ["console"]
},
"mdc.error": {
"level": "ERROR",
"handlers": ["error_console"],
"propagate": False,
"qualname": "mdc.error",
},
},
handlers={
"console": {
"class": "logging.StreamHandler",
"formatter": "generic",
"stream": sys.stdout,
},
"error_console": {
"class": "logging.StreamHandler",
"formatter": "generic",
"stream": sys.stderr,
},
},
formatters={
"generic": {
"format": "%(asctime)s | %(name)s | %(levelname)s | %(message)s",
# "datefmt": "%Y-%m-%d %H:%M:%S",
"class": "logging.Formatter",
},
},
)
def is_debug():
"""For is debug."""
return os.getenv("AZUREML_MDC_DEBUG", "false").lower() == "true"
def init_logging():
"""For init logging."""
if is_debug():
log_config = DEBUG_SDK_LOGGING_CONFIG
else:
log_config = DEFAULT_SDK_LOGGING_CONFIG
dictConfig(log_config)