Skip to content

Commit 51c3dfd

Browse files
Copilotthawn
andcommitted
Move apply_log_level() to log_handler.py
Moved the apply_log_level() function from ttmp32gme.py to log_handler.py for better code organization. Updated imports in both ttmp32gme.py and test_log_level_change.py accordingly. Co-authored-by: thawn <1308449+thawn@users.noreply.github.com>
1 parent 1039e0f commit 51c3dfd

File tree

3 files changed

+38
-35
lines changed

3 files changed

+38
-35
lines changed

src/ttmp32gme/log_handler.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@
55
from threading import Lock
66
from typing import List
77

8+
# Get logger for this module
9+
logger = logging.getLogger(__name__)
10+
11+
12+
def apply_log_level(level_str: str) -> None:
13+
"""Apply log level to all relevant loggers.
14+
15+
Args:
16+
level_str: Log level string (DEBUG, INFO, WARNING, ERROR, CRITICAL)
17+
"""
18+
level = getattr(logging, level_str, logging.WARNING)
19+
20+
# Set root logger level
21+
logging.getLogger().setLevel(level)
22+
23+
# Set werkzeug logger level
24+
# When not in DEBUG/INFO mode, suppress werkzeug's INFO logs to reduce clutter
25+
werkzeug_logger = logging.getLogger("werkzeug")
26+
if level_str in ["DEBUG", "INFO"]:
27+
werkzeug_logger.setLevel(level)
28+
else:
29+
# Suppress werkzeug's INFO logs (like request logs) when not in verbose mode
30+
werkzeug_logger.setLevel(logging.WARNING)
31+
32+
# Set waitress logger level (for production server)
33+
waitress_logger = logging.getLogger("waitress")
34+
if level_str in ["DEBUG", "INFO"]:
35+
waitress_logger.setLevel(level)
36+
else:
37+
waitress_logger.setLevel(logging.WARNING)
38+
39+
logger.info(f"Log level changed to {level_str}")
40+
841

942
class MemoryLogHandler(logging.Handler):
1043
"""Custom log handler that stores recent log records in memory."""

src/ttmp32gme/ttmp32gme.py

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
DBHandler,
3737
LibraryActionModel,
3838
)
39-
from ttmp32gme.log_handler import MemoryLogHandler
39+
from ttmp32gme.log_handler import MemoryLogHandler, apply_log_level
4040
from ttmp32gme.print_handler import (
4141
create_print_layout,
4242
format_print_button,
@@ -115,36 +115,6 @@ def get_db():
115115
return db_handler
116116

117117

118-
def apply_log_level(level_str: str) -> None:
119-
"""Apply log level to all relevant loggers.
120-
121-
Args:
122-
level_str: Log level string (DEBUG, INFO, WARNING, ERROR, CRITICAL)
123-
"""
124-
level = getattr(logging, level_str, logging.WARNING)
125-
126-
# Set root logger level
127-
logging.getLogger().setLevel(level)
128-
129-
# Set werkzeug logger level
130-
# When not in DEBUG/INFO mode, suppress werkzeug's INFO logs to reduce clutter
131-
werkzeug_logger = logging.getLogger("werkzeug")
132-
if level_str in ["DEBUG", "INFO"]:
133-
werkzeug_logger.setLevel(level)
134-
else:
135-
# Suppress werkzeug's INFO logs (like request logs) when not in verbose mode
136-
werkzeug_logger.setLevel(logging.WARNING)
137-
138-
# Set waitress logger level (for production server)
139-
waitress_logger = logging.getLogger("waitress")
140-
if level_str in ["DEBUG", "INFO"]:
141-
waitress_logger.setLevel(level)
142-
else:
143-
waitress_logger.setLevel(logging.WARNING)
144-
145-
logger.info(f"Log level changed to {level_str}")
146-
147-
148118
def fetch_config() -> Dict[str, Any]:
149119
"""Fetch configuration from database."""
150120
db = get_db()

tests/unit/test_log_level_change.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
def test_apply_log_level_sets_root_logger():
1212
"""Test that apply_log_level sets the root logger level."""
13-
from ttmp32gme.ttmp32gme import apply_log_level
13+
from ttmp32gme.log_handler import apply_log_level
1414

1515
root_logger = logging.getLogger()
1616
original_level = root_logger.level
@@ -35,7 +35,7 @@ def test_apply_log_level_sets_root_logger():
3535

3636
def test_apply_log_level_sets_werkzeug_logger():
3737
"""Test that apply_log_level sets werkzeug logger appropriately."""
38-
from ttmp32gme.ttmp32gme import apply_log_level
38+
from ttmp32gme.log_handler import apply_log_level
3939

4040
werkzeug_logger = logging.getLogger("werkzeug")
4141
root_logger = logging.getLogger()
@@ -67,7 +67,7 @@ def test_apply_log_level_sets_werkzeug_logger():
6767

6868
def test_apply_log_level_sets_waitress_logger():
6969
"""Test that apply_log_level sets waitress logger appropriately."""
70-
from ttmp32gme.ttmp32gme import apply_log_level
70+
from ttmp32gme.log_handler import apply_log_level
7171

7272
waitress_logger = logging.getLogger("waitress")
7373
root_logger = logging.getLogger()
@@ -99,7 +99,7 @@ def test_apply_log_level_sets_waitress_logger():
9999

100100
def test_apply_log_level_logs_info_message(caplog):
101101
"""Test that apply_log_level logs an info message."""
102-
from ttmp32gme.ttmp32gme import apply_log_level
102+
from ttmp32gme.log_handler import apply_log_level
103103

104104
root_logger = logging.getLogger()
105105
original_level = root_logger.level

0 commit comments

Comments
 (0)