Skip to content

Commit 3b52cab

Browse files
authored
feat(diagnostics/logs): include extended details (#2457)
1 parent 32cfa22 commit 3b52cab

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

public/locales/en/diagnostics.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@
4747
"autocomplete": {
4848
"globalLevel": "Global level",
4949
"subsystem": "Subsystem",
50-
"level": "Log level"
50+
"level": "Log level",
51+
"invalidSubsystem": "Subsystem \"{subsystem}\" is not valid. Valid subsystems: {subsystems}",
52+
"invalidLevel": "\"{level}\" is not a valid log level. Valid levels: debug, info, warn, error, dpanic, panic, fatal",
53+
"invalidInput": "Input cannot be empty"
5154
},
5255
"warnings": {
5356
"potentialIssues": "Potential Issues:",

src/contexts/logs/api.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ interface RawLogEntry {
2424
* The message of the log
2525
*/
2626
msg: string
27+
/**
28+
* Allow any additional structured fields
29+
*/
30+
[key: string]: any
2731
}
2832

2933
/**
@@ -119,11 +123,14 @@ export async function fetchLogSubsystems (ipfs: KuboRPCClient, signal?: AbortSig
119123
* Parse raw log entry into structured LogEntry
120124
*/
121125
export function parseLogEntry (raw: unknown): LogEntry {
122-
const obj = raw as RawLogEntry
126+
const { ts, level, logger, caller, msg, ...attributes } = raw as RawLogEntry
127+
123128
return {
124-
timestamp: obj.ts,
125-
level: obj.level,
126-
subsystem: obj.logger,
127-
message: obj.msg
129+
timestamp: ts,
130+
level,
131+
subsystem: logger,
132+
message: Object.keys(attributes).length > 0
133+
? `${msg} ${JSON.stringify(attributes)}`
134+
: msg
128135
}
129136
}

0 commit comments

Comments
 (0)