@@ -7,7 +7,7 @@ import { pathExists, pathExistsAsync, getLineCount, getIconForLogLevel, getLogIt
77export class LogViewerProvider implements vscode . TreeDataProvider < LogItem > , vscode . Disposable {
88 private _onDidChangeTreeData : vscode . EventEmitter < LogItem | undefined | void > = new vscode . EventEmitter < LogItem | undefined | void > ( ) ;
99 readonly onDidChangeTreeData : vscode . Event < LogItem | undefined | void > = this . _onDidChangeTreeData . event ;
10- public static statusBarItem : vscode . StatusBarItem ;
10+ public static statusBarItem : vscode . StatusBarItem | undefined ;
1111 private groupByMessage : boolean ;
1212 private disposables : vscode . Disposable [ ] = [ ] ;
1313 private isInitialized : boolean = false ;
@@ -243,7 +243,7 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogItem>, vsco
243243 return normalizedDir === normalizedLogPath ;
244244 }
245245
246- private getLogItems ( dir : string , label : string ) : LogItem [ ] {
246+ private getLogItems ( dir : string ) : LogItem [ ] {
247247 if ( ! pathExists ( dir ) ) {
248248 return [ new LogItem ( `No items found` , vscode . TreeItemCollapsibleState . None ) ] ;
249249 }
@@ -303,14 +303,13 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogItem>, vsco
303303 const groupedByType = new Map < string , { message : string , line : string , lineNumber : number } [ ] > ( ) ;
304304
305305 console . log ( `[DEBUG] Processing ${ lines . length } lines for ${ filePath } ` ) ;
306- let matchCount = 0 ;
307306
308307 lines . forEach ( ( line , index ) => {
309- const match = line . match ( / \. ( \w + ) : / ) ;
308+ // Enhanced regex to match both formats: .level: and .LEVEL:
309+ const match = line . match ( / \. ( [ A - Z a - z ] + ) : / ) ;
310310 if ( match ) {
311- matchCount ++ ;
312311 const level = match [ 1 ] . toUpperCase ( ) ;
313- const message = line . replace ( / ^ \[ .* ?\] \s * \. \w + : \s * / , '' ) ;
312+ const message = line . replace ( / ^ \[ .* ?\] \s * \. [ A - Z a - z ] + : \s * / , '' ) ;
314313
315314 // Apply search filter
316315 if ( this . matchesSearchTerm ( line ) || this . matchesSearchTerm ( message ) ) {
@@ -413,9 +412,9 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogItem>, vsco
413412 if ( fileContent ) {
414413 const lines = fileContent . split ( '\n' ) ;
415414
416- // Only count valid log entries matching the expected pattern
415+ // Only count valid log entries matching the expected pattern (enhanced for both formats)
417416 lines . forEach ( line => {
418- if ( line . match ( / \. ( \w + ) : / ) ) { // The pattern for log entries
417+ if ( line . match ( / \. ( [ A - Z a - z ] + ) : / ) ) { // Updated pattern to match both .level: and .LEVEL:
419418 logEntryCount ++ ;
420419 }
421420 } ) ;
@@ -441,7 +440,9 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogItem>, vsco
441440 const totalEntries = logFiles . reduce ( ( count , file ) => count + parseInt ( file . description ?. match ( / \d + / ) ?. [ 0 ] || '0' , 10 ) , 0 ) ;
442441
443442 const searchInfo = this . searchTerm ? ` | Search: "${ this . searchTerm } "` : '' ;
444- LogViewerProvider . statusBarItem . text = `Magento Log-Entries: ${ totalEntries } ${ searchInfo } ` ;
443+ if ( LogViewerProvider . statusBarItem ) {
444+ LogViewerProvider . statusBarItem . text = `Magento Log-Entries: ${ totalEntries } ${ searchInfo } ` ;
445+ }
445446 }
446447
447448 /**
@@ -522,7 +523,7 @@ export class LogViewerProvider implements vscode.TreeDataProvider<LogItem>, vsco
522523 this . _onDidChangeTreeData . dispose ( ) ;
523524 if ( LogViewerProvider . statusBarItem ) {
524525 LogViewerProvider . statusBarItem . dispose ( ) ;
525- LogViewerProvider . statusBarItem = null as any ;
526+ LogViewerProvider . statusBarItem = undefined ;
526527 }
527528 // Clear regex cache to prevent memory leaks
528529 this . cachedSearchRegex = null ;
@@ -678,7 +679,7 @@ export class ReportViewerProvider implements vscode.TreeDataProvider<LogItem>, v
678679 setTimeout ( ( ) => {
679680 try {
680681 const reportPath = path . join ( this . workspaceRoot , 'var' , 'report' ) ;
681- const reportItems = this . getLogItems ( reportPath , 'Reports' ) ;
682+ const reportItems = this . getLogItems ( reportPath ) ;
682683 if ( reportItems . length === 0 ) {
683684 resolve ( [ new LogItem ( 'No report files found' , vscode . TreeItemCollapsibleState . None ) ] ) ;
684685 } else {
@@ -693,7 +694,7 @@ export class ReportViewerProvider implements vscode.TreeDataProvider<LogItem>, v
693694 }
694695 }
695696
696- private getLogItems ( dir : string , label : string ) : LogItem [ ] {
697+ private getLogItems ( dir : string ) : LogItem [ ] {
697698 const allItems = getLogItems ( dir , parseReportTitle , getIconForReport ) ;
698699
699700 // Apply search filter
0 commit comments