Skip to content

Commit 245dd3c

Browse files
Alex Wangwangyb-A
authored andcommitted
fix: Change default key 'name' for logger extra field
- Use 'operation_name' instead of 'name' as key because the stdlib LogRecord internally reserved 'name' parameter - Add test case that does not use mocked logger
1 parent 8274be2 commit 245dd3c

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/aws_durable_execution_sdk_python/logger.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ def from_log_info(cls, logger: LoggerInterface, info: LogInfo) -> Logger:
5656
if info.parent_id:
5757
extra["parent_id"] = info.parent_id
5858
if info.name:
59-
extra["name"] = info.name
59+
# Use 'operation_name' instead of 'name' as key because the stdlib LogRecord internally reserved 'name' parameter
60+
extra["operation_name"] = info.name
6061
if info.attempt:
6162
extra["attempt"] = info.attempt
6263
return cls(logger, extra)

tests/e2e/execution_int_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def mock_checkpoint(
208208
"from step %s %s",
209209
123,
210210
"str",
211-
extra={"execution_arn": "test-arn", "name": "mystep"},
211+
extra={"execution_arn": "test-arn", "operation_name": "mystep"},
212212
)
213213

214214
assert result["Status"] == InvocationStatus.SUCCEEDED.value

tests/logger_test.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Unit tests for logger module."""
22

3+
import logging
34
from collections.abc import Mapping
45
from unittest.mock import Mock
56

@@ -155,7 +156,7 @@ def test_logger_from_log_info_full():
155156
expected_extra = {
156157
"execution_arn": "arn:aws:test",
157158
"parent_id": "parent123",
158-
"name": "test_name",
159+
"operation_name": "test_name",
159160
"attempt": 5,
160161
}
161162
assert logger._default_extra == expected_extra # noqa: SLF001
@@ -175,7 +176,7 @@ def test_logger_from_log_info_partial_fields():
175176
# Test with name but no parent_id or attempt
176177
log_info = LogInfo("arn:aws:test", None, "test_name")
177178
logger = Logger.from_log_info(mock_logger, log_info)
178-
expected_extra = {"execution_arn": "arn:aws:test", "name": "test_name"}
179+
expected_extra = {"execution_arn": "arn:aws:test", "operation_name": "test_name"}
179180
assert logger._default_extra == expected_extra # noqa: SLF001
180181

181182
# Test with attempt but no parent_id or name
@@ -207,7 +208,7 @@ def test_logger_with_log_info():
207208
expected_extra = {
208209
"execution_arn": "arn:aws:new",
209210
"parent_id": "parent2",
210-
"name": "new_name",
211+
"operation_name": "new_name",
211212
}
212213
assert new_logger._default_extra == expected_extra # noqa: SLF001
213214
assert new_logger._logger is mock_logger # noqa: SLF001
@@ -325,3 +326,13 @@ def test_logger_extra_override():
325326
"new_field": "value",
326327
}
327328
mock_logger.info.assert_called_once_with("test", extra=expected_extra)
329+
330+
331+
def test_logger_without_mocked_logger():
332+
"""Test Logger methods without mocking the underlying logger."""
333+
log_info = LogInfo("arn:aws:test", "parent123", "test_name", 5)
334+
logger = Logger.from_log_info(logging.getLogger(), log_info)
335+
336+
logger.info("test", extra={"execution_arn": "overridden", "new_field": "value"})
337+
logger.warning("test", extra={"execution_arn": "overridden", "new_field": "value"})
338+
logger.error("test", extra={"execution_arn": "overridden", "new_field": "value"})

0 commit comments

Comments
 (0)