about summary refs log tree commit diff
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])