From 58d98c7263dbe687eb677199eb760799ecff8e8f Mon Sep 17 00:00:00 2001 From: Nerivec <62446222+Nerivec@users.noreply.github.com> Date: Tue, 23 Dec 2025 17:45:04 +0100 Subject: [PATCH] fix: log dir tz format not working on some systems (#30324) --- lib/util/logger.ts | 9 +++++++-- test/logger.test.ts | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/util/logger.ts b/lib/util/logger.ts index 0ef63d73..19d70aa2 100644 --- a/lib/util/logger.ts +++ b/lib/util/logger.ts @@ -21,8 +21,13 @@ class Logger { public init(): void { // What transports to enable this.output = settings.get().advanced.log_output; - // NOTE: Sweden uses ISO standard, hence, this works for our purpose (equiv of toISOString with proper tz) - const timestamp = new Date().toLocaleString("sv-SE").slice(0, 19).replace(" ", ".").replaceAll(":", "-"); + const date = new Date(); + // offset UTC by current timezone, ISO keeps "Z" (UTC) which is then wrong but we strip it + const timestamp = new Date(date.getTime() - date.getTimezoneOffset() * 60000) + .toISOString() + .slice(0, 19) + .replace("T", ".") + .replaceAll(":", "-"); this.directory = settings.get().advanced.log_directory.replace("%TIMESTAMP%", timestamp); const logFilename = settings.get().advanced.log_file.replace("%TIMESTAMP%", timestamp); this.level = settings.get().advanced.log_level; diff --git a/test/logger.test.ts b/test/logger.test.ts index 2a554759..297e991c 100644 --- a/test/logger.test.ts +++ b/test/logger.test.ts @@ -51,6 +51,7 @@ describe("Logger", () => { it("Create log directory", () => { const dirs = fs.readdirSync(dir.name); expect(dirs.length).toBe(1); + expect(dirs[0]).toMatch(/^[0-9]{4}-[0-9]{2}-[0-9]{2}\.[0-9]{2}-[0-9]{2}-[0-9]{2}$/); }); it("Should cleanup (default setting)", () => {