Skip to content

Commit d463cc7

Browse files
committed
fix: update logging configs to ignore debug flag when given given a user provided logger
1 parent 9d88f50 commit d463cc7

File tree

4 files changed

+36
-46
lines changed

4 files changed

+36
-46
lines changed

src/amplitude_experiment/local/config.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(self, debug: bool = False,
4444
assignment_config (AssignmentConfig): The assignment configuration.
4545
cohort_sync_config (CohortSyncConfig): The cohort sync configuration.
4646
logger (logging.Logger): Optional logger instance. If provided, this logger will be used instead of
47-
creating a new one. The debug flag will still be applied to set the log level.
47+
creating a new one. The debug flag only applies when no logger is provided.
4848
4949
Returns:
5050
The config object
@@ -76,10 +76,9 @@ def __init__(self, debug: bool = False,
7676
if not self.logger.handlers:
7777
handler = logging.StreamHandler(sys.stderr)
7878
self.logger.addHandler(handler)
79+
# Set log level: DEBUG if debug=True, otherwise WARNING
80+
# Only apply debug flag to default logger, not user-provided loggers
81+
log_level = logging.DEBUG if self.debug else logging.WARNING
82+
self.logger.setLevel(log_level)
7983
else:
8084
self.logger = logger
81-
82-
# Set log level: DEBUG if debug=True, otherwise WARNING
83-
# This applies to both provided loggers and the default logger
84-
log_level = logging.DEBUG if self.debug else logging.WARNING
85-
self.logger.setLevel(log_level)

src/amplitude_experiment/remote/config.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def __init__(self, debug=False,
3131
fetch_retry_backoff_scalar (float): Scales the minimum backoff exponentially.
3232
fetch_retry_timeout_millis (int): The request timeout for retrying fetch requests.
3333
logger (logging.Logger): Optional logger instance. If provided, this logger will be used instead of
34-
creating a new one. The debug flag will still be applied to set the log level.
34+
creating a new one. The debug flag only applies when no logger is provided.
3535
3636
Returns:
3737
The config object
@@ -52,10 +52,9 @@ def __init__(self, debug=False,
5252
if not self.logger.handlers:
5353
handler = logging.StreamHandler(sys.stderr)
5454
self.logger.addHandler(handler)
55+
# Set log level: DEBUG if debug=True, otherwise WARNING
56+
# Only apply debug flag to default logger, not user-provided loggers
57+
log_level = logging.DEBUG if self.debug else logging.WARNING
58+
self.logger.setLevel(log_level)
5559
else:
5660
self.logger = logger
57-
58-
# Set log level: DEBUG if debug=True, otherwise WARNING
59-
# This applies to both provided loggers and the default logger
60-
log_level = logging.DEBUG if self.debug else logging.WARNING
61-
self.logger.setLevel(log_level)

tests/local/config_test.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,21 @@ def test_custom_logger_is_used(self):
4141
self.assertEqual(config.logger, custom_logger)
4242
self.assertEqual(config.logger.name, "CustomLogger")
4343

44-
def test_custom_logger_has_debug_level_when_debug_true(self):
45-
"""Test that custom logger has DEBUG level set when debug=True"""
46-
custom_logger = logging.getLogger("CustomLogger")
47-
config = LocalEvaluationConfig(debug=True, logger=custom_logger)
48-
self.assertEqual(config.logger.level, logging.DEBUG)
49-
50-
def test_custom_logger_has_warning_level_when_debug_false(self):
51-
"""Test that custom logger has WARNING level set when debug=False"""
52-
custom_logger = logging.getLogger("CustomLogger")
53-
config = LocalEvaluationConfig(debug=False, logger=custom_logger)
54-
self.assertEqual(config.logger.level, logging.WARNING)
55-
56-
def test_custom_logger_debug_flag_takes_precedence(self):
57-
"""Test that debug flag takes precedence over logger's existing level"""
58-
custom_logger = logging.getLogger("CustomLogger")
44+
def test_custom_logger_level_not_modified_by_debug_flag(self):
45+
"""Test that custom logger level is not modified by debug flag"""
46+
# Test with debug=True
47+
custom_logger = logging.getLogger("CustomLoggerDebug")
5948
custom_logger.setLevel(logging.ERROR)
6049
config = LocalEvaluationConfig(debug=True, logger=custom_logger)
61-
# Debug flag should override to DEBUG
62-
self.assertEqual(config.logger.level, logging.DEBUG)
50+
# Logger level should remain unchanged (ERROR), not modified to DEBUG
51+
self.assertEqual(config.logger.level, logging.ERROR)
52+
53+
# Test with debug=False
54+
custom_logger2 = logging.getLogger("CustomLoggerWarning")
55+
custom_logger2.setLevel(logging.INFO)
56+
config2 = LocalEvaluationConfig(debug=False, logger=custom_logger2)
57+
# Logger level should remain unchanged (INFO), not modified to WARNING
58+
self.assertEqual(config2.logger.level, logging.INFO)
6359

6460
def test_default_logger_only_one_handler_added(self):
6561
"""Test that only one handler is added to default logger"""

tests/remote/config_test.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,21 @@ def test_custom_logger_is_used(self):
4141
self.assertEqual(config.logger, custom_logger)
4242
self.assertEqual(config.logger.name, "CustomLogger")
4343

44-
def test_custom_logger_has_debug_level_when_debug_true(self):
45-
"""Test that custom logger has DEBUG level set when debug=True"""
46-
custom_logger = logging.getLogger("CustomLogger")
47-
config = RemoteEvaluationConfig(debug=True, logger=custom_logger)
48-
self.assertEqual(config.logger.level, logging.DEBUG)
49-
50-
def test_custom_logger_has_warning_level_when_debug_false(self):
51-
"""Test that custom logger has WARNING level set when debug=False"""
52-
custom_logger = logging.getLogger("CustomLogger")
53-
config = RemoteEvaluationConfig(debug=False, logger=custom_logger)
54-
self.assertEqual(config.logger.level, logging.WARNING)
55-
56-
def test_custom_logger_debug_flag_takes_precedence(self):
57-
"""Test that debug flag takes precedence over logger's existing level"""
58-
custom_logger = logging.getLogger("CustomLogger")
44+
def test_custom_logger_level_not_modified_by_debug_flag(self):
45+
"""Test that custom logger level is not modified by debug flag"""
46+
# Test with debug=True
47+
custom_logger = logging.getLogger("CustomLoggerDebug")
5948
custom_logger.setLevel(logging.ERROR)
6049
config = RemoteEvaluationConfig(debug=True, logger=custom_logger)
61-
# Debug flag should override to DEBUG
62-
self.assertEqual(config.logger.level, logging.DEBUG)
50+
# Logger level should remain unchanged (ERROR), not modified to DEBUG
51+
self.assertEqual(config.logger.level, logging.ERROR)
52+
53+
# Test with debug=False
54+
custom_logger2 = logging.getLogger("CustomLoggerWarning")
55+
custom_logger2.setLevel(logging.INFO)
56+
config2 = RemoteEvaluationConfig(debug=False, logger=custom_logger2)
57+
# Logger level should remain unchanged (INFO), not modified to WARNING
58+
self.assertEqual(config2.logger.level, logging.INFO)
6359

6460
def test_default_logger_only_one_handler_added(self):
6561
"""Test that only one handler is added to default logger"""

0 commit comments

Comments
 (0)