Skip to content

Commit d6b8565

Browse files
committed
fix(logging): keep handlers attached to the nat logger at their level
Signed-off-by: Somay-kousis <somaykaush@gmail.com>
1 parent 70e35c9 commit d6b8565

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

‎packages/nvidia_nat_core/src/nat/builder/workflow_builder.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ def __init__(self, *, general_config: GeneralConfig | None = None, registry: Typ
334334
self._logging_handlers: dict[str, logging.Handler] = {}
335335
self._removed_root_handlers: list[tuple[logging.Handler, int]] = []
336336
self._changed_logger_levels: list[tuple[logging.Logger, int]] = []
337+
self._pinned_nat_handlers: list[tuple[logging.Handler, int]] = []
337338
self._telemetry_exporters: dict[str, ConfiguredTelemetryExporter] = {}
338339

339340
self._functions: dict[str, ConfiguredFunction] = {}
@@ -422,6 +423,11 @@ async def _setup_telemetry(self) -> None:
422423
root_logger.setLevel(min_handler_level)
423424
nat_logger = logging.getLogger("nat")
424425
if nat_logger.getEffectiveLevel() > min_handler_level:
426+
old_nat_level = nat_logger.getEffectiveLevel()
427+
for handler in nat_logger.handlers:
428+
if handler not in self._logging_handlers.values() and handler.level < old_nat_level:
429+
self._pinned_nat_handlers.append((handler, handler.level))
430+
handler.setLevel(old_nat_level)
425431
self._changed_logger_levels.append((nat_logger, nat_logger.level))
426432
nat_logger.setLevel(min_handler_level)
427433

@@ -449,6 +455,8 @@ async def __aexit__(self, *exc_details):
449455
root_logger.removeHandler(handler)
450456

451457
# Restore original handlers and their levels, last change first
458+
for handler, old_level in reversed(self._pinned_nat_handlers):
459+
handler.setLevel(old_level)
452460
for handler, old_level in reversed(self._removed_root_handlers):
453461
if handler not in root_logger.handlers:
454462
root_logger.addHandler(handler)

0 commit comments

Comments
 (0)