@@ -81,21 +81,27 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogFile>, vsco
8181 const match = line . match ( / \. ( \w + ) : / ) ;
8282 if ( match ) {
8383 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 } ) ;
8690 }
87- grouped [ level ] . push ( { line, lineNumber : index } ) ;
8891 }
8992 } ) ;
9093
9194 const summary = Object . keys ( grouped ) . map ( level => {
9295 const count = grouped [ level ] . length ;
9396 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+ } ) ) ;
99105 switch ( level . toLowerCase ( ) ) {
100106 case 'error' :
101107 logFile . iconPath = new vscode . ThemeIcon ( 'error' ) ;
@@ -118,6 +124,11 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogFile>, vsco
118124 return summary ;
119125 }
120126
127+ private isValidLogLevel ( level : string ) : boolean {
128+ const validLevels = [ 'error' , 'warn' , 'debug' , 'info' ] ;
129+ return validLevels . includes ( level . toLowerCase ( ) ) ;
130+ }
131+
121132 getLogFilesWithoutUpdatingBadge ( dir : string ) : LogFile [ ] {
122133 if ( this . pathExists ( dir ) ) {
123134 const files = fs . readdirSync ( dir ) ;
0 commit comments