Skip to content

Commit 2138a38

Browse files
committed
refactor: optimize logger configuration
Signed-off-by: thxCode <[email protected]>
1 parent a055315 commit 2138a38

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

gpustack_runtime/logging.py

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ def setup_logging():
7373
Environment Variables:
7474
GPUSTACK_RUNTIME_LOG_LEVEL
7575
Controls logging levels. Examples:
76-
- "DEBUG" # All modules at DEBUG
77-
- "runtime.module_a:DEBUG" # Only module_a module at DEBUG, other modules at INFO
78-
- "module_a:DEBUG" # Same as above
79-
- "runtime.module_a:DEBUG;runtime.module_b:INFO" # Multiple modules
80-
- "ERROR;runtime.module_a:DEBUG" # All modules at ERROR, only module_a module at DEBUG
76+
- "DEBUG" # All modules at DEBUG
77+
- "gpustack_runtime.module_a:DEBUG" # Only module_a module at DEBUG, other modules at INFO
78+
- "module_a:DEBUG" # Same as above
79+
- "gpustack_runtime.module_a:DEBUG;gpustack_runtime.module_b:INFO" # Multiple modules
80+
- "ERROR;gpustack_runtime.module_a:DEBUG" # All modules at ERROR, only module_a module at DEBUG
8181
8282
GPUSTACK_RUNTIME_LOG_TO_FILE
8383
If set, specifies the file path for log output. When this variable is set,
@@ -101,6 +101,7 @@ def setup_logging():
101101
module_levels = _parse_module_levels(level_str)
102102

103103
formatter = logging.Formatter(DEFAULT_LOG_FORMAT)
104+
level = module_levels.get("", logging.INFO)
104105
handlers: list[logging.StreamHandler[Any] | logging.FileHandler] = []
105106
queue_handler = logging.handlers.QueueHandler(_LOG_QUEUE)
106107

@@ -115,25 +116,29 @@ def setup_logging():
115116
file_handler.setFormatter(formatter)
116117
handlers.append(file_handler)
117118

118-
# Configure root logger
119-
root_logger = logging.getLogger(__package__)
120-
root_logger.handlers.clear()
121-
root_logger.setLevel(logging.INFO)
122-
root_logger.addHandler(queue_handler)
123-
root_logger.propagate = False
119+
# Configure package logger
120+
package_logger = logging.getLogger(__package__)
121+
package_logger.handlers.clear()
122+
package_logger.setLevel(level)
123+
package_logger.addHandler(queue_handler)
124+
package_logger.propagate = False
124125

125-
# Set default level
126-
if "" in module_levels:
127-
root_logger.setLevel(module_levels[""])
128-
129-
# Configure module-specific levels
130-
for module, level in module_levels.items():
126+
# Configure module loggers
127+
for module, module_level in module_levels.items():
131128
if module: # Skip default level
132-
logger = logging.getLogger(f"{__package__}.{module}")
133-
logger.handlers.clear()
134-
logger.addHandler(queue_handler)
135-
logger.setLevel(level)
136-
logger.propagate = False # Prevent message duplication
129+
module_logger = logging.getLogger(f"{__package__}.{module}")
130+
module_logger.handlers.clear()
131+
module_logger.addHandler(queue_handler)
132+
module_logger.setLevel(module_level)
133+
module_logger.propagate = False
134+
135+
# Configure 3rd-party loggers, set slightly higher level than package level
136+
for _3rd in ["docker", "kubernetes"]:
137+
_3rd_logger = logging.getLogger(_3rd)
138+
_3rd_logger.handlers.clear()
139+
_3rd_logger.addHandler(queue_handler)
140+
_3rd_logger.setLevel(max(logging.NOTSET, min(level + 10, logging.CRITICAL)))
141+
_3rd_logger.propagate = False
137142

138143
_LOG_LISTENER = logging.handlers.QueueListener(
139144
_LOG_QUEUE,

0 commit comments

Comments
 (0)