소스 검색

fix(home-server): destroy winston loggers upon server shutdown

Karol Sójko 2 년 전
부모
커밋
c7a394cd1a
1개의 변경된 파일17개의 추가작업 그리고 12개의 파일을 삭제
  1. 17 12
      packages/home-server/src/Server/HomeServer.ts

+ 17 - 12
packages/home-server/src/Server/HomeServer.ts

@@ -26,6 +26,14 @@ export class HomeServer implements HomeServerInterface {
   private serverInstance: http.Server | undefined
   private authService: AuthServiceInterface | undefined
   private logStream: PassThrough | undefined
+  private readonly loggerNames = [
+    'auth-server',
+    'syncing-server',
+    'revisions-server',
+    'files-server',
+    'api-gateway',
+    'home-server',
+  ]
 
   async start(configuration: HomeServerConfiguration): Promise<Result<string>> {
     try {
@@ -165,15 +173,19 @@ export class HomeServer implements HomeServerInterface {
         return Result.fail('Home server is not running.')
       }
 
-      this.serverInstance.close()
-      this.serverInstance.unref()
-
-      this.serverInstance = undefined
+      for (const loggerName of this.loggerNames) {
+        winston.loggers.close(loggerName)
+      }
 
       if (this.logStream) {
         this.logStream.end()
       }
 
+      this.serverInstance.close()
+      this.serverInstance.unref()
+
+      this.serverInstance = undefined
+
       return Result.ok('Server stopped.')
     } catch (error) {
       return Result.fail((error as Error).message)
@@ -207,14 +219,7 @@ export class HomeServer implements HomeServerInterface {
 
     const level = env.get('LOG_LEVEL', true) || 'info'
 
-    for (const loggerName of [
-      'auth-server',
-      'syncing-server',
-      'revisions-server',
-      'files-server',
-      'api-gateway',
-      'home-server',
-    ]) {
+    for (const loggerName of this.loggerNames) {
       winston.loggers.add(loggerName, {
         level,
         format: winston.format.combine(...winstonFormatters),