diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index f74d6e5fa9..077f4d6270 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -76,6 +76,7 @@ export class Main { } this.logService = new ElectronLogService(null, app.getPath("userData")); + this.logService.init(); this.i18nService = new I18nMainService("en", "./locales/"); const storageDefaults: any = {}; diff --git a/apps/desktop/src/platform/services/electron-log.service.ts b/apps/desktop/src/platform/services/electron-log.service.ts index d5e8e4ae80..55d4c62f94 100644 --- a/apps/desktop/src/platform/services/electron-log.service.ts +++ b/apps/desktop/src/platform/services/electron-log.service.ts @@ -8,16 +8,24 @@ import { ConsoleLogService as BaseLogService } from "@bitwarden/common/platform/ import { isDev } from "../../utils"; export class ElectronLogService extends BaseLogService { - constructor(protected filter: (level: LogLevelType) => boolean = null, logDir: string = null) { + constructor( + protected filter: (level: LogLevelType) => boolean = null, + private logDir: string = null + ) { super(isDev(), filter); + } + + // Initialize the log file transport. Only needs to be done once in the main process. + init() { if (log.transports == null) { return; } log.transports.file.level = "info"; - if (logDir != null) { - log.transports.file.file = path.join(logDir, "app.log"); + if (this.logDir != null) { + log.transports.file.resolvePathFn = () => path.join(this.logDir, "app.log"); } + log.initialize(); } write(level: LogLevelType, message: string) { diff --git a/package-lock.json b/package-lock.json index 9a335fdc47..053cd4cadc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -125,7 +125,7 @@ "del": "6.1.1", "electron": "25.9.1", "electron-builder": "23.6.0", - "electron-log": "4.4.8", + "electron-log": "5.0.0", "electron-reload": "2.0.0-alpha.1", "electron-store": "8.1.0", "electron-updater": "5.3.0", @@ -20210,10 +20210,14 @@ } }, "node_modules/electron-log": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.4.8.tgz", - "integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.0.0.tgz", + "integrity": "sha512-vB3akupmQvA8jAyNL9rULZtf6WoP8vsabjXsRtiqXS6/D37SwN/4LEyj4JD+9Bv6xoTcx/LrVnsIKEEWdq5ClQ==", + "dev": true, + "engines": { + "electron": ">= 13", + "node": ">= 14" + } }, "node_modules/electron-osx-sign": { "version": "0.6.0", diff --git a/package.json b/package.json index 3610dcc973..104af6ded1 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "del": "6.1.1", "electron": "25.9.1", "electron-builder": "23.6.0", - "electron-log": "4.4.8", + "electron-log": "5.0.0", "electron-reload": "2.0.0-alpha.1", "electron-store": "8.1.0", "electron-updater": "5.3.0",