@@ -5,20 +5,33 @@ export class ConsoleLogger implements ILogger {
55 private context : any
66
77 constructor ( context : any ) {
8- this . context = context
8+ this . context = context || { }
99 }
1010
11- private formatMessage ( message : string , level : LogLevel , context : any ) : string {
11+ private formatMessage ( message : string | Error , level : LogLevel , context : any ) : string {
1212 let msg = '[' + LogLevel [ level ] . toUpperCase ( ) + ']'
13+
1314 if ( context && context . app ) {
1415 msg += ' ' + context . app + ': '
1516 }
16- return msg + message
17+
18+ if ( typeof message === 'string' ) return msg + message
19+
20+ // basic error formatting
21+ msg += `Unexpected ${ message . name } `
22+ if ( message . message ) msg += ` "${ message . message } "`
23+ // only add stack trace when debugging
24+ if ( level === LogLevel . Debug && message . stack ) msg += `\n\nStack trace:\n${ message . stack } `
25+
26+ return msg
1727 }
1828
19- log ( level : LogLevel , message : string , context : object ) {
29+ log ( level : LogLevel , message : string | Error , context : object ) {
2030 if ( level < this . context ?. level ) return ;
2131
32+ // Add error object to context
33+ if ( typeof message === 'object' && ( context as any ) . error === undefined ) ( context as any ) . error = message
34+
2235 switch ( level ) {
2336 case LogLevel . Debug :
2437 console . debug ( this . formatMessage ( message , LogLevel . Debug , context ) , context )
@@ -39,23 +52,23 @@ export class ConsoleLogger implements ILogger {
3952 }
4053 }
4154
42- debug ( message : string , context ?: object ) : void {
55+ debug ( message : string | Error , context ?: object ) : void {
4356 this . log ( LogLevel . Debug , message , Object . assign ( { } , this . context , context ) )
4457 }
4558
46- info ( message : string , context ?: object ) : void {
59+ info ( message : string | Error , context ?: object ) : void {
4760 this . log ( LogLevel . Info , message , Object . assign ( { } , this . context , context ) )
4861 }
4962
50- warn ( message : string , context ?: object ) : void {
63+ warn ( message : string | Error , context ?: object ) : void {
5164 this . log ( LogLevel . Warn , message , Object . assign ( { } , this . context , context ) )
5265 }
5366
54- error ( message : string , context ?: object ) : void {
67+ error ( message : string | Error , context ?: object ) : void {
5568 this . log ( LogLevel . Error , message , Object . assign ( { } , this . context , context ) )
5669 }
5770
58- fatal ( message : string , context ?: object ) : void {
71+ fatal ( message : string | Error , context ?: object ) : void {
5972 this . log ( LogLevel . Fatal , message , Object . assign ( { } , this . context , context ) )
6073 }
6174
0 commit comments