Skip to content

Commit 1000abd

Browse files
committed
Enhance log entry grouping to support dynamic severity levels and update log file summary display
1 parent 6ea74f5 commit 1000abd

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/logViewer.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -74,22 +74,24 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogFile>, vsco
7474
}
7575

7676
private groupLogEntries(lines: string[]): LogFile[] {
77-
const grouped: { [key: string]: string[] } = { ERROR: [], WARN: [], INFO: [] };
77+
const grouped: { [key: string]: string[] } = {};
78+
7879
lines.forEach(line => {
79-
if (line.includes('.ERROR:')) {
80-
grouped.ERROR.push(line);
81-
} else if (line.includes('.WARN:')) {
82-
grouped.WARN.push(line);
83-
} else if (line.includes('.INFO:')) {
84-
grouped.INFO.push(line);
80+
const match = line.match(/\.(\w+):/);
81+
if (match) {
82+
const level = match[1];
83+
if (!grouped[level]) {
84+
grouped[level] = [];
85+
}
86+
grouped[level].push(line);
8587
}
8688
});
8789

88-
const summary = [
89-
new LogFile(`ERROR: ${grouped.ERROR.length} entries`, vscode.TreeItemCollapsibleState.Collapsed, undefined, grouped.ERROR.map((line, index) => new LogFile(`Line ${index + 1}: ${line}`, vscode.TreeItemCollapsibleState.None))),
90-
new LogFile(`WARN: ${grouped.WARN.length} entries`, vscode.TreeItemCollapsibleState.Collapsed, undefined, grouped.WARN.map((line, index) => new LogFile(`Line ${index + 1}: ${line}`, vscode.TreeItemCollapsibleState.None))),
91-
new LogFile(`INFO: ${grouped.INFO.length} entries`, vscode.TreeItemCollapsibleState.Collapsed, undefined, grouped.INFO.map((line, index) => new LogFile(`Line ${index + 1}: ${line}`, vscode.TreeItemCollapsibleState.None)))
92-
];
90+
const summary = Object.keys(grouped).map(level => {
91+
const count = grouped[level].length;
92+
const label = `${level} (${count})`;
93+
return new LogFile(label, vscode.TreeItemCollapsibleState.Collapsed, undefined, grouped[level].map((line, index) => new LogFile(`Line ${index + 1}: ${line}`, vscode.TreeItemCollapsibleState.None)));
94+
});
9395

9496
return summary;
9597
}
@@ -146,7 +148,7 @@ export class LogFile extends vscode.TreeItem {
146148
this.label = this.label.replace(/\(\d+\)/, '').trim();
147149
}
148150

149-
iconPath = new vscode.ThemeIcon('file');
151+
iconPath = new vscode.ThemeIcon('list');
150152

151153
contextValue = 'logFile';
152154
description = '';

0 commit comments

Comments
 (0)