Skip to content

Commit f0891c0

Browse files
committed
fix: handle lists in matched fields for LogTape
1 parent b32f42e commit f0891c0

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

tail_jsonl/_private/core.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ def _dot_pop(data: dict, key: str) -> str | None: # type: ignore[type-arg]
2121
if isinstance(value, str):
2222
dotted.remove(data, key)
2323
return value or None
24+
if isinstance(value, list):
25+
dotted.remove(data, key)
26+
return str(value)
2427
return None
2528

2629

tail_jsonl/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class Keys:
2121

2222
timestamp: list[str] = field(default_factory=lambda: ['timestamp', 'time', 'record.time.repr'])
2323
level: list[str] = field(default_factory=lambda: ['level', 'levelname', 'record.level.name'])
24-
message: list[str] = field(default_factory=lambda: ['event', 'message', 'msg', 'record.message', '_message'])
24+
message: list[str] = field(default_factory=lambda: ['event', 'message', 'msg', 'record.message'])
2525

2626
on_own_line: list[str] = field(default_factory=lambda: ['text', 'exception', 'error.stack'])
2727

tests/_private/test_core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ def test_core_bad_json(console: Console):
6969
assert result.strip() == '{"bad json": None}'
7070

7171

72+
def test_core_logtape_messages(console: Console):
73+
print_record('{"message": ["LogTape Message"]}', console, Config())
74+
75+
result = console.end_capture()
76+
77+
assert result.strip() == "<no timestamp> [NOTSET ] ['LogTape Message']"
78+
79+
7280
def test_core_wrap(console: Console):
7381
print_record(json.dumps(dict.fromkeys(range(3), '-' * 3)), console, Config())
7482

0 commit comments

Comments
 (0)