File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
aws_lambda_powertools/logging Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -119,7 +119,7 @@ def __init__(
119
119
):
120
120
self .service = service or os .getenv ("POWERTOOLS_SERVICE_NAME" ) or "service_undefined"
121
121
self .sampling_rate = sampling_rate or os .getenv ("POWERTOOLS_LOGGER_SAMPLE_RATE" ) or 0.0
122
- self .log_level = level or os . getenv ( "LOG_LEVEL" . upper ()) or logging . INFO
122
+ self .log_level = self . _get_log_level ( level )
123
123
self .child = child
124
124
self ._handler = logging .StreamHandler (stream ) if stream is not None else logging .StreamHandler (sys .stdout )
125
125
self ._default_log_keys = {"service" : self .service , "sampling_rate" : self .sampling_rate }
@@ -132,6 +132,13 @@ def __getattr__(self, name):
132
132
# https://github.com/awslabs/aws-lambda-powertools-python/issues/97
133
133
return getattr (self ._logger , name )
134
134
135
+ def _get_log_level (self , level : str ):
136
+ """ Returns preferred log level set by the customer in upper case """
137
+ log_level : str = level or os .getenv ("LOG_LEVEL" )
138
+ log_level = log_level .upper () if log_level is not None else logging .INFO
139
+
140
+ return log_level
141
+
135
142
def _get_logger (self ):
136
143
""" Returns a Logger named {self.service}, or {self.service.filename} for child loggers"""
137
144
logger_name = self .service
Original file line number Diff line number Diff line change @@ -306,3 +306,21 @@ def test_logger_child_not_set_returns_same_logger(stdout):
306
306
assert id (logger_one ) != id (logger_two )
307
307
assert logger_one ._logger is logger_two ._logger
308
308
assert logger_one .name is logger_two .name
309
+
310
+
311
+ def test_logger_level_case_insensitive (stdout ):
312
+ # GIVEN a Loggers is initialized
313
+ # WHEN log level is set as "info" instead of "INFO"
314
+ logger = Logger (level = "info" )
315
+
316
+ # THEN we should correctly set log level as INFO
317
+ assert logger .level == logging .INFO
318
+
319
+
320
+ def test_logger_level_not_set (stdout ):
321
+ # GIVEN a Loggers is initialized
322
+ # WHEN no log level was passed
323
+ logger = Logger (level = "info" )
324
+
325
+ # THEN we should default to INFO
326
+ assert logger .level == logging .INFO
You can’t perform that action at this time.
0 commit comments