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 11import { pino } from "pino" ;
22
3- let logger : any ;
3+ // 1. The actual logger instance, swapped out as needed
4+ let currentLogger : any ;
45
56if ( process . env . NODE_ENV === "development" ) {
6- logger = pino ( {
7+ currentLogger = pino ( {
78 level : "debug" ,
89 transport : {
910 targets : [
@@ -23,8 +24,8 @@ if (process.env.NODE_ENV === "development") {
2324 } ,
2425 } ) ;
2526} else {
26- // NULL logger
27- logger = pino ( {
27+ // Null logger (logs go to /dev/null or NUL)
28+ currentLogger = pino ( {
2829 level : "info" ,
2930 transport : {
3031 target : "pino/file" ,
@@ -35,12 +36,24 @@ if (process.env.NODE_ENV === "development") {
3536 } ) ;
3637}
3738
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
4255export function setLogger ( customLogger : any ) : void {
43- logger = customLogger ;
56+ currentLogger = customLogger ;
4457}
4558
4659export default logger ;
You can’t perform that action at this time.
0 commit comments