Skip to content

Commit 58d98c7

Browse files
authored
fix: log dir tz format not working on some systems (#30324)
1 parent b10fa93 commit 58d98c7

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/util/logger.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,13 @@ class Logger {
2121
public init(): void {
2222
// What transports to enable
2323
this.output = settings.get().advanced.log_output;
24-
// NOTE: Sweden uses ISO standard, hence, this works for our purpose (equiv of toISOString with proper tz)
25-
const timestamp = new Date().toLocaleString("sv-SE").slice(0, 19).replace(" ", ".").replaceAll(":", "-");
24+
const date = new Date();
25+
// offset UTC by current timezone, ISO keeps "Z" (UTC) which is then wrong but we strip it
26+
const timestamp = new Date(date.getTime() - date.getTimezoneOffset() * 60000)
27+
.toISOString()
28+
.slice(0, 19)
29+
.replace("T", ".")
30+
.replaceAll(":", "-");
2631
this.directory = settings.get().advanced.log_directory.replace("%TIMESTAMP%", timestamp);
2732
const logFilename = settings.get().advanced.log_file.replace("%TIMESTAMP%", timestamp);
2833
this.level = settings.get().advanced.log_level;

test/logger.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ describe("Logger", () => {
5151
it("Create log directory", () => {
5252
const dirs = fs.readdirSync(dir.name);
5353
expect(dirs.length).toBe(1);
54+
expect(dirs[0]).toMatch(/^[0-9]{4}-[0-9]{2}-[0-9]{2}\.[0-9]{2}-[0-9]{2}-[0-9]{2}$/);
5455
});
5556

5657
it("Should cleanup (default setting)", () => {

0 commit comments

Comments
 (0)