@@ -4,19 +4,76 @@ import { Logger } from '@optask/tasker';
44/**
55 * Simple wrapper around the nestjs default logger, implementing the logger interface
66 */
7- export class NestLogger extends NativeNestLogger implements Logger {
7+ export class NestLogger implements Logger {
8+ logLevel = 3 ;
9+
10+ private logger : NativeNestLogger ;
11+
12+ constructor (
13+ name ?: string ,
14+ options ?: {
15+ timestamp ?: boolean ;
16+ } ,
17+ ) {
18+ if ( name ) {
19+ this . logger = new NativeNestLogger ( name , options ) ;
20+ } else {
21+ this . logger = new NativeNestLogger ( ) ;
22+ }
23+
24+ const envVar = process . env [ `TASKER_LOG_LEVEL` ] ;
25+ const parsed = parseInt ( envVar , 10 ) ;
26+ if ( parsed >= 0 ) {
27+ this . logLevel = Math . min ( parsed , 5 ) ;
28+ }
29+ }
30+
31+ fatal ( ...args : any [ ] ) {
32+ if ( this . logLevel >= 0 ) {
33+ this . logger . fatal ( args ) ;
34+ }
35+ }
36+
37+ error ( ...args : any [ ] ) {
38+ if ( this . logLevel >= 1 ) {
39+ this . logger . error ( args ) ;
40+ }
41+ }
42+
43+ warn ( ...args : any [ ] ) {
44+ if ( this . logLevel >= 2 ) {
45+ this . logger . warn ( args ) ;
46+ }
47+ }
48+
49+ log ( ...args : any [ ] ) {
50+ if ( this . logLevel >= 3 ) {
51+ this . logger . log ( args ) ;
52+ }
53+ }
54+
855 info ( ...args : any [ ] ) {
9- // Just map calls to info -> log
10- this . log ( args ) ;
56+ if ( this . logLevel >= 3 ) {
57+ this . logger . log ( args ) ;
58+ }
59+ }
60+
61+ debug ( ...args : any [ ] ) {
62+ if ( this . logLevel >= 4 ) {
63+ this . logger . debug ( args ) ;
64+ }
1165 }
1266
1367 trace ( ...args : any [ ] ) {
14- // Just map calls to trace -> verbose
15- this . verbose ( args ) ;
68+ if ( this . logLevel >= 5 ) {
69+ this . logger . verbose ( args ) ;
70+ }
1671 }
1772
1873 // Construct new logger with a different name
1974 child ( name ?: string ) {
20- return new NestLogger ( name ) ;
75+ const newLogger = new NestLogger ( name ) ;
76+ newLogger . logLevel = this . logLevel ;
77+ return newLogger ;
2178 }
2279}
0 commit comments