Skip to content
This repository was archived by the owner on Dec 21, 2024. It is now read-only.

Commit 08d41b3

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 7ad9717 + 4e9b241 commit 08d41b3

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/pythonjsonlogger/jsonlogger.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import traceback
1010
import importlib
1111

12-
from typing import Any, Dict, Union, List, Tuple
12+
from typing import Any, Dict, Optional, Union, List, Tuple
1313

1414
from inspect import istraceback
1515

@@ -25,7 +25,12 @@
2525

2626

2727

28-
def merge_record_extra(record: logging.LogRecord, target: Dict, reserved: Union[Dict, List], rename_fields: Dict[str,str]) -> Dict:
28+
def merge_record_extra(
29+
record: logging.LogRecord,
30+
target: Dict,
31+
reserved: Union[Dict, List],
32+
rename_fields: Optional[Dict[str,str]] = None,
33+
) -> Dict:
2934
"""
3035
Merges extra attributes from LogRecord object into target dictionary
3136
@@ -35,6 +40,8 @@ def merge_record_extra(record: logging.LogRecord, target: Dict, reserved: Union[
3540
:param rename_fields: an optional dict, used to rename field names in the output.
3641
Rename levelname to log.level: {'levelname': 'log.level'}
3742
"""
43+
if rename_fields is None:
44+
rename_fields = {}
3845
for key, value in record.__dict__.items():
3946
# this allows to have numeric keys
4047
if (key not in reserved

tests/tests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,14 @@ def test_rename_reserved_attrs(self):
298298
msg = self.buffer.getvalue()
299299
self.assertEqual(msg, '{"error.type": null, "error.message": null, "log.origin.function": "test_rename_reserved_attrs", "log.level": "INFO", "log.origin.file.name": "tests", "process.name": "MainProcess", "process.thread.name": "MainThread", "log.message": "message"}\n')
300300

301+
def test_merge_record_extra(self):
302+
record = logging.LogRecord("name", level=1, pathname="", lineno=1, msg="Some message", args=None, exc_info=None)
303+
output = jsonlogger.merge_record_extra(record, target=dict(foo="bar"), reserved=[])
304+
self.assertIn("foo", output)
305+
self.assertIn("msg", output)
306+
self.assertEquals(output["foo"], "bar")
307+
self.assertEquals(output["msg"], "Some message")
308+
301309

302310
if __name__ == '__main__':
303311
if len(sys.argv[1:]) > 0:

0 commit comments

Comments
 (0)