File tree Expand file tree Collapse file tree 1 file changed +22
-9
lines changed Expand file tree Collapse file tree 1 file changed +22
-9
lines changed Original file line number Diff line number Diff line change 1
1
import { pino } from "pino" ;
2
2
3
- let logger : any ;
3
+ // 1. The actual logger instance, swapped out as needed
4
+ let currentLogger : any ;
4
5
5
6
if ( process . env . NODE_ENV === "development" ) {
6
- logger = pino ( {
7
+ currentLogger = pino ( {
7
8
level : "debug" ,
8
9
transport : {
9
10
targets : [
@@ -23,8 +24,8 @@ if (process.env.NODE_ENV === "development") {
23
24
} ,
24
25
} ) ;
25
26
} else {
26
- // NULL logger
27
- logger = pino ( {
27
+ // Null logger (logs go to /dev/null or NUL)
28
+ currentLogger = pino ( {
28
29
level : "info" ,
29
30
transport : {
30
31
target : "pino/file" ,
@@ -35,12 +36,24 @@ if (process.env.NODE_ENV === "development") {
35
36
} ) ;
36
37
}
37
38
38
- /**
39
- * Set a custom logger instance
40
- * @param customLogger - The logger instance to use
41
- */
39
+ // 2. Proxy logger: always delegates to the currentLogger
40
+ const logger : any = new Proxy (
41
+ { } ,
42
+ {
43
+ get ( _target , prop ) {
44
+ // Forward function calls to currentLogger
45
+ if ( typeof currentLogger [ prop ] === "function" ) {
46
+ return ( ...args : any [ ] ) => currentLogger [ prop ] ( ...args ) ;
47
+ }
48
+ // Forward property gets
49
+ return currentLogger [ prop ] ;
50
+ } ,
51
+ } ,
52
+ ) ;
53
+
54
+ // 3. Setter to update the logger instance everywhere
42
55
export function setLogger ( customLogger : any ) : void {
43
- logger = customLogger ;
56
+ currentLogger = customLogger ;
44
57
}
45
58
46
59
export default logger ;
You can’t perform that action at this time.
0 commit comments