Skip to content

Commit ed3902d

Browse files
Fixing logic to handle log flush
1 parent 35acff5 commit ed3902d

File tree

3 files changed

+25
-32
lines changed

3 files changed

+25
-32
lines changed

aws_lambda_powertools/logging/buffer/functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def _create_buffer_record(level: str, msg: object, args: object, **kwargs) -> di
2121
}
2222

2323

24-
def _resolve_buffer_log_level(buffer_log_level, current_log_level):
24+
def _check_minimum_buffer_log_level(buffer_log_level, current_log_level):
2525
# Define log level mapping
2626
log_levels = {
2727
"DEBUG": 10,
@@ -36,7 +36,7 @@ def _resolve_buffer_log_level(buffer_log_level, current_log_level):
3636
current_level_num = log_levels.get(current_log_level.upper())
3737

3838
# Compare numeric levels
39-
if buffer_level_num <= current_level_num:
39+
if buffer_level_num < current_level_num:
4040
return True
4141

4242
return False

aws_lambda_powertools/logging/logger.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from typing import IO, TYPE_CHECKING, Any, Callable, Generator, Iterable, Mapping, TypeVar, overload
1818

1919
from aws_lambda_powertools.logging.buffer.cache import LoggerBufferCache
20-
from aws_lambda_powertools.logging.buffer.functions import _create_buffer_record, _resolve_buffer_log_level
20+
from aws_lambda_powertools.logging.buffer.functions import _check_minimum_buffer_log_level, _create_buffer_record
2121
from aws_lambda_powertools.logging.constants import (
2222
LOGGER_ATTRIBUTE_PRECONFIGURED,
2323
)
@@ -86,7 +86,7 @@ class Logger:
8686
----------
8787
service : str, optional
8888
service name to be appended in logs, by default "service_undefined"
89-
level : Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], int optional
89+
level : str, int optional
9090
The level to set. Can be a string representing the level name: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'
9191
or an integer representing the level value: 10 for 'DEBUG', 20 for 'INFO', 30 for 'WARNING', 40 for 'ERROR', 50 for 'CRITICAL'.
9292
by default "INFO"
@@ -457,7 +457,7 @@ def decorate(event, context, *args, **kwargs):
457457

458458
return decorate
459459

460-
def _add_log_to_buffer(self, level, msg, filename, line, function, **kwargs):
460+
def _add_log_line_to_buffer(self, level, msg, filename, line, function, **kwargs):
461461
# Initial implementation, will always cache
462462
self._buffer_cache.add("XRAY_ID", msg)
463463

@@ -493,7 +493,7 @@ def debug(
493493

494494
log_record = _create_buffer_record(level="DEBUG", msg=msg, args=args, **kwargs)
495495

496-
self._add_log_to_buffer(**log_record)
496+
self._add_log_line_to_buffer(**log_record)
497497

498498
def info(
499499
self,
@@ -520,7 +520,7 @@ def info(
520520
)
521521

522522
# Buffer log level is higher than this log level and we need to flush
523-
if _resolve_buffer_log_level(self._logger_buffer.minimum_log_level, "INFO"):
523+
if _check_minimum_buffer_log_level(self._logger_buffer.minimum_log_level, "INFO"):
524524
return self._logger.info(
525525
msg,
526526
*args,
@@ -532,7 +532,7 @@ def info(
532532

533533
log_record: dict[str, Any] = _create_buffer_record(level="INFO", msg=msg, args=args, **kwargs)
534534

535-
self._add_log_to_buffer(**log_record)
535+
self._add_log_line_to_buffer(**log_record)
536536

537537
def warning(
538538
self,
@@ -559,7 +559,7 @@ def warning(
559559
)
560560

561561
# Buffer log level is higher than this log level and we need to flush
562-
if _resolve_buffer_log_level(self._logger_buffer.minimum_log_level, "WARNING"):
562+
if _check_minimum_buffer_log_level(self._logger_buffer.minimum_log_level, "WARNING"):
563563
return self._logger.warning(
564564
msg,
565565
*args,
@@ -571,7 +571,7 @@ def warning(
571571

572572
log_record = _create_buffer_record(level="WARNING", msg=msg, args=args, **kwargs)
573573

574-
self._add_log_to_buffer(**log_record)
574+
self._add_log_line_to_buffer(**log_record)
575575

576576
def error(
577577
self,
Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,29 @@
1-
from aws_lambda_powertools.logging.buffer.functions import _resolve_buffer_log_level
1+
from aws_lambda_powertools.logging.buffer.functions import _check_minimum_buffer_log_level
22

33

44
def test_resolve_buffer_log_level_comparison():
55
# Test cases where buffer level is lower than current level (should return True)
6-
assert _resolve_buffer_log_level("DEBUG", "INFO") is True
7-
assert _resolve_buffer_log_level("DEBUG", "WARNING") is True
8-
assert _resolve_buffer_log_level("DEBUG", "ERROR") is True
9-
assert _resolve_buffer_log_level("INFO", "WARNING") is True
10-
assert _resolve_buffer_log_level("INFO", "ERROR") is True
11-
assert _resolve_buffer_log_level("WARNING", "ERROR") is True
12-
13-
# Test cases where buffer level is equal to current level (should return True)
14-
assert _resolve_buffer_log_level("INFO", "INFO") is True
15-
assert _resolve_buffer_log_level("DEBUG", "DEBUG") is True
16-
assert _resolve_buffer_log_level("WARNING", "WARNING") is True
17-
assert _resolve_buffer_log_level("ERROR", "ERROR") is True
18-
assert _resolve_buffer_log_level("CRITICAL", "CRITICAL") is True
6+
assert _check_minimum_buffer_log_level("DEBUG", "INFO") is True
7+
assert _check_minimum_buffer_log_level("DEBUG", "WARNING") is True
8+
assert _check_minimum_buffer_log_level("DEBUG", "ERROR") is True
9+
assert _check_minimum_buffer_log_level("INFO", "WARNING") is True
10+
assert _check_minimum_buffer_log_level("INFO", "ERROR") is True
11+
assert _check_minimum_buffer_log_level("WARNING", "ERROR") is True
1912

2013
# Test cases where buffer level is higher than current level (should return False)
21-
assert _resolve_buffer_log_level("ERROR", "DEBUG") is False
22-
assert _resolve_buffer_log_level("CRITICAL", "INFO") is False
23-
assert _resolve_buffer_log_level("ERROR", "WARNING") is False
14+
assert _check_minimum_buffer_log_level("ERROR", "DEBUG") is False
15+
assert _check_minimum_buffer_log_level("CRITICAL", "INFO") is False
16+
assert _check_minimum_buffer_log_level("ERROR", "WARNING") is False
2417

2518

2619
def test_resolve_buffer_log_level_case_insensitivity():
2720
# Test case insensitivity
28-
assert _resolve_buffer_log_level("debug", "INFO") is True
29-
assert _resolve_buffer_log_level("DEBUG", "info") is True
30-
assert _resolve_buffer_log_level("Debug", "Info") is True
21+
assert _check_minimum_buffer_log_level("debug", "INFO") is True
22+
assert _check_minimum_buffer_log_level("DEBUG", "info") is True
23+
assert _check_minimum_buffer_log_level("Debug", "Info") is True
3124

3225

3326
def test_resolve_buffer_log_level_edge_cases():
3427
# Additional edge cases
35-
assert _resolve_buffer_log_level("DEBUG", "CRITICAL") is True
36-
assert _resolve_buffer_log_level("CRITICAL", "DEBUG") is False
28+
assert _check_minimum_buffer_log_level("DEBUG", "CRITICAL") is True
29+
assert _check_minimum_buffer_log_level("CRITICAL", "DEBUG") is False

0 commit comments

Comments
 (0)