22 * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
33 * SPDX-License-Identifier: GPL-3.0-or-later
44 */
5- import { IContext , ILogger , LogLevel } from './contracts'
65
7- export class ConsoleLogger implements ILogger {
6+ import type { IContext , ILogger } from './contracts.ts'
7+
8+ import { LogLevel } from './contracts.ts'
89
10+ /* eslint-disable no-console -- This class is a console logger so it needs to write to the console. */
11+ export class ConsoleLogger implements ILogger {
912 private context : IContext
1013
1114 constructor ( context ?: IContext ) {
1215 this . context = context || { }
1316 }
1417
15- private formatMessage ( message : string | Error , level : LogLevel , context ?: IContext ) : string {
18+ private formatMessage ( message : string | Error , level : LogLevel , context ?: IContext ) : string {
1619 let msg = '[' + LogLevel [ level ] . toUpperCase ( ) + '] '
1720
1821 if ( context && context . app ) {
1922 msg += context . app + ': '
2023 }
2124
22- if ( typeof message === 'string' ) return msg + message
25+ if ( typeof message === 'string' ) {
26+ return msg + message
27+ }
2328
2429 // basic error formatting
2530 msg += `Unexpected ${ message . name } `
26- if ( message . message ) msg += ` "${ message . message } "`
31+ if ( message . message ) {
32+ msg += ` "${ message . message } "`
33+ }
2734 // only add stack trace when debugging
28- if ( level === LogLevel . Debug && message . stack ) msg += `\n\nStack trace:\n${ message . stack } `
35+ if ( level === LogLevel . Debug && message . stack ) {
36+ msg += `\n\nStack trace:\n${ message . stack } `
37+ }
2938
3039 return msg
3140 }
3241
33- log ( level : LogLevel , message : string | Error , context : IContext ) {
42+ log ( level : LogLevel , message : string | Error , context : IContext ) {
3443 // Skip if level is configured and this is below the level
3544 if ( typeof this . context ?. level === 'number' && level < this . context ?. level ) {
3645 return
@@ -42,45 +51,44 @@ export class ConsoleLogger implements ILogger {
4251 }
4352
4453 switch ( level ) {
45- case LogLevel . Debug :
46- console . debug ( this . formatMessage ( message , LogLevel . Debug , context ) , context )
47- break
48- case LogLevel . Info :
49- console . info ( this . formatMessage ( message , LogLevel . Info , context ) , context )
50- break
51- case LogLevel . Warn :
52- console . warn ( this . formatMessage ( message , LogLevel . Warn , context ) , context )
53- break
54- case LogLevel . Error :
55- console . error ( this . formatMessage ( message , LogLevel . Error , context ) , context )
56- break
57- case LogLevel . Fatal :
58- default :
59- console . error ( this . formatMessage ( message , LogLevel . Fatal , context ) , context )
60- break
54+ case LogLevel . Debug :
55+ console . debug ( this . formatMessage ( message , LogLevel . Debug , context ) , context )
56+ break
57+ case LogLevel . Info :
58+ console . info ( this . formatMessage ( message , LogLevel . Info , context ) , context )
59+ break
60+ case LogLevel . Warn :
61+ console . warn ( this . formatMessage ( message , LogLevel . Warn , context ) , context )
62+ break
63+ case LogLevel . Error :
64+ console . error ( this . formatMessage ( message , LogLevel . Error , context ) , context )
65+ break
66+ case LogLevel . Fatal :
67+ default :
68+ console . error ( this . formatMessage ( message , LogLevel . Fatal , context ) , context )
69+ break
6170 }
6271 }
6372
64- debug ( message : string | Error , context ?: IContext ) : void {
65- this . log ( LogLevel . Debug , message , Object . assign ( { } , this . context , context ) )
73+ debug ( message : string | Error , context ?: IContext ) : void {
74+ this . log ( LogLevel . Debug , message , { ... this . context , ... context } )
6675 }
6776
68- info ( message : string | Error , context ?: IContext ) : void {
69- this . log ( LogLevel . Info , message , Object . assign ( { } , this . context , context ) )
77+ info ( message : string | Error , context ?: IContext ) : void {
78+ this . log ( LogLevel . Info , message , { ... this . context , ... context } )
7079 }
7180
72- warn ( message : string | Error , context ?: IContext ) : void {
73- this . log ( LogLevel . Warn , message , Object . assign ( { } , this . context , context ) )
81+ warn ( message : string | Error , context ?: IContext ) : void {
82+ this . log ( LogLevel . Warn , message , { ... this . context , ... context } )
7483 }
7584
76- error ( message : string | Error , context ?: IContext ) : void {
77- this . log ( LogLevel . Error , message , Object . assign ( { } , this . context , context ) )
85+ error ( message : string | Error , context ?: IContext ) : void {
86+ this . log ( LogLevel . Error , message , { ... this . context , ... context } )
7887 }
7988
80- fatal ( message : string | Error , context ?: IContext ) : void {
81- this . log ( LogLevel . Fatal , message , Object . assign ( { } , this . context , context ) )
89+ fatal ( message : string | Error , context ?: IContext ) : void {
90+ this . log ( LogLevel . Fatal , message , { ... this . context , ... context } )
8291 }
83-
8492}
8593
8694/**
0 commit comments