aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py')
-rw-r--r--.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py b/.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py
new file mode 100644
index 00000000..68a90aca
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/azure/ai/ml/_utils/_logger_utils.py
@@ -0,0 +1,62 @@
+# ---------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# ---------------------------------------------------------
+
+import logging
+import sys
+
+from opentelemetry import trace
+
+from azure.ai.ml._telemetry.logging_handler import AML_INTERNAL_LOGGER_NAMESPACE
+
+
+def initialize_logger_info(module_logger: logging.Logger, terminator="\n") -> None:
+ """Initializes the logger with INFO level and adds a StreamHandler to the logger.
+
+ :param module_logger: The logger to be initialized.
+ :type module_logger: logging.Logger
+ :param terminator: The line terminator for the StreamHandler. Defaults to a newline character.
+ :type terminator: str
+ :return: None
+ """
+ module_logger.setLevel(logging.INFO)
+ module_logger.propagate = False
+ handler = logging.StreamHandler(sys.stderr)
+ handler.setLevel(logging.INFO)
+ handler.terminator = terminator
+ handler.flush = sys.stderr.flush
+ module_logger.addHandler(handler)
+
+
+tracer = trace.get_tracer(AML_INTERNAL_LOGGER_NAMESPACE)
+
+
+class OpsLogger:
+ """
+ A logger class for managing logging and tracing operations within a package.
+ This class initializes loggers and tracers for a specified package, and provides methods to update logging filters.
+ """
+
+ def __init__(self, name: str):
+ """
+ This constructor sets up the package logger, module logger, and tracer for the given package name.
+ :param name: The name of the package for which the logger is being initialized.
+ :type name: str
+ """
+ self.package_logger: logging.Logger = logging.getLogger(AML_INTERNAL_LOGGER_NAMESPACE).getChild(name)
+ self.package_logger.propagate = True
+ self.package_tracer = tracer
+ self.module_logger = logging.getLogger(name)
+ self.custom_dimensions = {}
+
+ def update_filter(self) -> None:
+ """
+ Update the logging filter for the package logger.
+ This method attaches the filter from the parent logger to the package logger,
+ as the parent's filter is not automatically propagated to the child logger.
+
+ :return: None
+ """
+ # Attach filter explicitly as parent logger's filter is not propagated to child logger
+ if self.package_logger.parent.filters:
+ self.package_logger.addFilter(self.package_logger.parent.filters[0])