Skip to content

Commit 4420df4

Browse files
Add log level settings for auto skills (#883)
1 parent ea824b7 commit 4420df4

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

ms_agent/skill/auto_skills.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# yapf: disable
44
import asyncio
55
import logging
6+
import os
67
import re
78
from dataclasses import dataclass, field
89
from pathlib import Path
@@ -39,6 +40,15 @@ def _configure_logger_to_dir(log_dir: Path) -> None:
3940
log_dir.mkdir(parents=True, exist_ok=True)
4041
log_file = log_dir / 'ms_agent.log'
4142

43+
# Get current log level from environment
44+
log_level_str = os.getenv('LOG_LEVEL', 'INFO').upper()
45+
log_level = getattr(logging, log_level_str, logging.INFO)
46+
47+
# Update logger level to respect current LOG_LEVEL env var
48+
logger.setLevel(log_level)
49+
for handler in logger.handlers:
50+
handler.setLevel(log_level)
51+
4252
# Check if file handler for this path already exists
4353
for handler in logger.handlers:
4454
if isinstance(handler, logging.FileHandler):
@@ -52,7 +62,7 @@ def _configure_logger_to_dir(log_dir: Path) -> None:
5262

5363
file_handler = logging.FileHandler(str(log_file), mode='a')
5464
file_handler.setFormatter(logging.Formatter('[%(levelname)s:%(name)s] %(message)s'))
55-
file_handler.setLevel(logger.level)
65+
file_handler.setLevel(log_level)
5666
logger.addHandler(file_handler)
5767
logger.info(f'Logger configured to output to: {log_file}')
5868

ms_agent/utils/logger.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ def get_logger(log_file: Optional[str] = None,
5353
logger = logging.getLogger(logger_name)
5454
logger.propagate = False
5555
if logger_name in init_loggers:
56+
# Update log level dynamically to respect current LOG_LEVEL env var
57+
logger.setLevel(log_level)
58+
for handler in logger.handlers:
59+
handler.setLevel(log_level)
5660
add_file_handler_if_needed(logger, log_file, file_mode, log_level)
5761
return logger
5862

@@ -124,3 +128,28 @@ def add_file_handler_if_needed(logger, log_file, file_mode, log_level):
124128
file_handler.setFormatter(logger_format)
125129
file_handler.setLevel(log_level)
126130
logger.addHandler(file_handler)
131+
132+
133+
def refresh_log_level(target_logger=None):
134+
"""
135+
Refresh logger level from LOG_LEVEL environment variable.
136+
137+
This is useful when LOG_LEVEL is changed after the logger was initialized.
138+
139+
Args:
140+
target_logger: Logger to refresh. If None, uses the default logger.
141+
142+
Returns:
143+
The new log level (as int).
144+
"""
145+
if target_logger is None:
146+
target_logger = logger
147+
148+
log_level_str = os.getenv('LOG_LEVEL', 'INFO').upper()
149+
log_level_int = getattr(logging, log_level_str, logging.INFO)
150+
151+
target_logger.setLevel(log_level_int)
152+
for handler in target_logger.handlers:
153+
handler.setLevel(log_level_int)
154+
155+
return log_level_int

0 commit comments

Comments
 (0)