@@ -81,21 +81,27 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogFile>, vsco
81
81
const match = line . match ( / \. ( \w + ) : / ) ;
82
82
if ( match ) {
83
83
const level = match [ 1 ] ;
84
- if ( ! grouped [ level ] ) {
85
- grouped [ level ] = [ ] ;
84
+ const message = line . replace ( / ^ \[ .* ?\] \s * \. \w + : \s * / , '' ) ; // Entfernt den Zeitstempel und den Punkt
85
+ if ( this . isValidLogLevel ( level ) ) {
86
+ if ( ! grouped [ level ] ) {
87
+ grouped [ level ] = [ ] ;
88
+ }
89
+ grouped [ level ] . push ( { line : message , lineNumber : index } ) ;
86
90
}
87
- grouped [ level ] . push ( { line, lineNumber : index } ) ;
88
91
}
89
92
} ) ;
90
93
91
94
const summary = Object . keys ( grouped ) . map ( level => {
92
95
const count = grouped [ level ] . length ;
93
96
const label = `${ level } (${ count } )` ;
94
- const logFile = new LogFile ( label , vscode . TreeItemCollapsibleState . Collapsed , undefined , grouped [ level ] . map ( entry => new LogFile ( `Line ${ entry . lineNumber + 1 } : ${ entry . line } ` , vscode . TreeItemCollapsibleState . None , {
95
- command : 'magento-log-viewer.openFileAtLine' ,
96
- title : 'Open Log File at Line' ,
97
- arguments : [ filePath , entry . lineNumber ]
98
- } ) ) ) ;
97
+ const logFile = new LogFile ( label , vscode . TreeItemCollapsibleState . Collapsed , undefined , grouped [ level ] . map ( entry => {
98
+ const lineNumber = ( entry . lineNumber + 1 ) . toString ( ) . padStart ( 2 , '0' ) ; // Zeilennummer mit führenden Nullen
99
+ return new LogFile ( `Line ${ lineNumber } : ${ entry . line } ` , vscode . TreeItemCollapsibleState . None , { // Fügen Sie hier den Abstand hinzu
100
+ command : 'magento-log-viewer.openFileAtLine' ,
101
+ title : 'Open Log File at Line' ,
102
+ arguments : [ filePath , entry . lineNumber ]
103
+ } ) ;
104
+ } ) ) ;
99
105
switch ( level . toLowerCase ( ) ) {
100
106
case 'error' :
101
107
logFile . iconPath = new vscode . ThemeIcon ( 'error' ) ;
@@ -118,6 +124,11 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogFile>, vsco
118
124
return summary ;
119
125
}
120
126
127
+ private isValidLogLevel ( level : string ) : boolean {
128
+ const validLevels = [ 'error' , 'warn' , 'debug' , 'info' ] ;
129
+ return validLevels . includes ( level . toLowerCase ( ) ) ;
130
+ }
131
+
121
132
getLogFilesWithoutUpdatingBadge ( dir : string ) : LogFile [ ] {
122
133
if ( this . pathExists ( dir ) ) {
123
134
const files = fs . readdirSync ( dir ) ;
0 commit comments