@@ -2,6 +2,7 @@ import {CodeAnalyzer, EngineLogEvent, EventType, LogEvent, LogLevel} from '@sale
22import { Display } from '../Display' ;
33import { LogWriter } from '../writers/LogWriter' ;
44import { BundleName , getMessage } from "../messages" ;
5+ import { indent , makeGrey } from '../utils/StylingUtil' ;
56
67export interface LogEventListener {
78 listen ( codeAnalyzer : CodeAnalyzer ) : void ;
@@ -17,8 +18,8 @@ export class LogEventDisplayer implements LogEventListener {
1718
1819 public listen ( codeAnalyzer : CodeAnalyzer ) : void {
1920 // Set up listeners
20- codeAnalyzer . onEvent ( EventType . LogEvent , ( e : LogEvent ) => this . handleEvent ( 'Core ' , e ) ) ;
21- codeAnalyzer . onEvent ( EventType . EngineLogEvent , ( e : EngineLogEvent ) => this . handleEvent ( e . engineName , e ) ) ;
21+ codeAnalyzer . onEvent ( EventType . LogEvent , ( e : LogEvent ) => this . handleEvent ( 'Code Analyzer ' , e ) ) ;
22+ codeAnalyzer . onEvent ( EventType . EngineLogEvent , ( e : EngineLogEvent ) => this . handleEvent ( `Engine ' ${ e . engineName } '` , e ) ) ;
2223 }
2324
2425 public stopListening ( ) : void {
@@ -31,16 +32,25 @@ export class LogEventDisplayer implements LogEventListener {
3132 if ( event . logLevel > LogLevel . Info ) {
3233 return ;
3334 }
34- const formattedMessage = `${ source } [${ formatTimestamp ( event . timestamp ) } ]: ${ event . message } ` ;
35+ const decoratedTimestamp = makeGrey ( `[${ formatTimestamp ( event . timestamp ) } ]` ) ;
36+ const formattedMessage = `${ source } ${ decoratedTimestamp } :\n${ indent ( event . message ) } ` ;
3537 switch ( event . logLevel ) {
3638 case LogLevel . Error :
3739 this . display . displayError ( formattedMessage ) ;
40+ // Adds a newline outside of the error formatting to make errors easy to read. That is, we do not want
41+ // to add a \n inside of the above displayError or use displayError('') here because it always adds in a
42+ // red "">" character.
43+ this . display . displayInfo ( '' ) ;
3844 return ;
3945 case LogLevel . Warn :
4046 this . display . displayWarning ( formattedMessage ) ;
47+ // Likewise, we want spacing here, but don't want to add in displayWarning('') because it adds back in
48+ // the word "Warning". So it's best to just use displayInfo('') to add in a blank line.
49+ this . display . displayInfo ( '' ) ;
4150 return ;
4251 case LogLevel . Info :
4352 this . display . displayInfo ( formattedMessage ) ;
53+ this . display . displayInfo ( '' ) ;
4454 return ;
4555 }
4656 }
@@ -72,5 +82,5 @@ export class LogEventLogger implements LogEventListener {
7282}
7383
7484function formatTimestamp ( timestamp : Date ) : string {
75- return `${ timestamp . getHours ( ) } :${ timestamp . getMinutes ( ) } :${ timestamp . getSeconds ( ) } ` ;
85+ return `${ timestamp . getHours ( ) } :${ timestamp . getMinutes ( ) } :${ timestamp . getSeconds ( ) } . ${ timestamp . getMilliseconds ( ) } ` ;
7686}
0 commit comments