From 0742490527ab24128b71dc5fff6d6a30cd353345 Mon Sep 17 00:00:00 2001 From: Fabian Stamm Date: Sat, 8 May 2021 22:43:46 +0200 Subject: [PATCH] Changing filewrite behavior --- package.json | 4 ++-- src/filewriter.ts | 22 ++++++++++------------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 02d0a06..1c33518 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hibas123/nodelogging", - "version": "3.0.4", + "version": "3.0.5", "description": "", "main": "out/index.js", "types": "out/index.d.ts", @@ -32,7 +32,7 @@ "typescript": "^4.2.4" }, "dependencies": { - "@hibas123/logging": "^3.0.3", + "@hibas123/logging": "^3.0.5", "@hibas123/utils": "^2.2.18" } } diff --git a/src/filewriter.ts b/src/filewriter.ts index 2b49c5f..83ecea5 100644 --- a/src/filewriter.ts +++ b/src/filewriter.ts @@ -7,12 +7,7 @@ const MAX_FILE_SIZE = 500000000; export class LoggingFiles implements Adapter { file: Files; - constructor( - private filename: string, - private error = false, - private maxFileSize = MAX_FILE_SIZE, - private noPrefix = false - ) {} + constructor(private filename: string, private maxFileSize = MAX_FILE_SIZE) {} init() { if (!this.file) { @@ -58,20 +53,22 @@ export class Files { private stream: fs.WriteStream = undefined; private lock = new Lock(); - private $initialized = false; + #initialized = false; + #iv: any; public get initlialized() { - return this.$initialized; + return this.#initialized; } private constructor(private file: string) {} public async init(maxFileSize: number) { - if (this.$initialized) return; + if (this.#initialized) return; let lock = await this.lock.getLock(); this.maxFileSize == maxFileSize; await this.initializeFile(); - this.$initialized = true; + this.#initialized = true; + this.#iv = setInterval(() => this.checkQueue(), 500); lock.release(); this.checkQueue(); } @@ -104,7 +101,7 @@ export class Files { this.size = size; } catch (e) { console.log(e); - //ToDo is this the right behavior? + //TODO: is this the right behavior? process.exit(1); } } @@ -125,10 +122,12 @@ export class Files { await this.flush(false); this.open--; if (this.open <= 0) { + clearInterval(this.#iv); this.stream.close(); Files.files.delete(this.file); } } + public flush(sync: boolean) { if (sync) { // if sync flush, the process most likely is in failstate, so checkQueue stopped its work. @@ -165,7 +164,6 @@ export class Files { public write(data: Buffer) { this.queue.push(data); - this.checkQueue(); } public dispose() {}