1
+ import { SimpleStructuredLogger } from "../utils/structuredLogger.js" ;
1
2
import { singleton } from "./singleton.js" ;
2
3
3
4
type ShutdownHandler = NodeJS . SignalsListener ;
@@ -11,6 +12,7 @@ class ShutdownManager {
11
12
SIGTERM : 15 ,
12
13
} ;
13
14
15
+ private logger = new SimpleStructuredLogger ( "shutdownManager" ) ;
14
16
private handlers : Map < string , { handler : ShutdownHandler ; signals : ShutdownSignal [ ] } > =
15
17
new Map ( ) ;
16
18
@@ -38,7 +40,7 @@ class ShutdownManager {
38
40
if ( this . isShuttingDown ) return ;
39
41
this . isShuttingDown = true ;
40
42
41
- console . log ( `\nReceived ${ signal } . Starting graceful shutdown...`) ;
43
+ this . logger . info ( `Received ${ signal } . Starting graceful shutdown...`) ;
42
44
43
45
// Get handlers that are registered for this signal
44
46
const handlersToRun = Array . from ( this . handlers . entries ( ) ) . filter ( ( [ _ , { signals } ] ) =>
@@ -49,11 +51,11 @@ class ShutdownManager {
49
51
const results = await Promise . allSettled (
50
52
handlersToRun . map ( async ( [ name , { handler } ] ) => {
51
53
try {
52
- console . log ( `Running shutdown handler: ${ name } ` ) ;
54
+ this . logger . info ( `Running shutdown handler: ${ name } ` ) ;
53
55
await handler ( signal ) ;
54
- console . log ( `Shutdown handler completed: ${ name } ` ) ;
56
+ this . logger . info ( `Shutdown handler completed: ${ name } ` ) ;
55
57
} catch ( error ) {
56
- console . error ( `Shutdown handler failed: ${ name } ` , error ) ;
58
+ this . logger . error ( `Shutdown handler failed: ${ name } ` , { error } ) ;
57
59
throw error ;
58
60
}
59
61
} )
@@ -65,12 +67,12 @@ class ShutdownManager {
65
67
const handlerEntry = handlersToRun [ index ] ;
66
68
if ( handlerEntry ) {
67
69
const [ name ] = handlerEntry ;
68
- console . error ( `Shutdown handler "${ name } " failed:` , result . reason ) ;
70
+ this . logger . error ( `Shutdown handler "${ name } " failed:` , { reason : result . reason } ) ;
69
71
}
70
72
}
71
73
} ) ;
72
74
} catch ( error ) {
73
- console . error ( "Error during shutdown:" , error ) ;
75
+ this . logger . error ( "Error during shutdown:" , { error } ) ;
74
76
} finally {
75
77
// Exit with the correct signal number
76
78
process . exit ( 128 + this . signalNumbers [ signal ] ) ;
0 commit comments