diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-11-23 12:55:29 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-11-23 12:55:29 +0100 |
| commit | 6b95ceead2b6712d05a836e50395b754cc8605ad (patch) | |
| tree | 7d0cd5d27ab4f46208ef0979e0943a9f7bff18f8 /gui/src | |
| parent | 410cf70afb817488233dce1018d38fe734665d53 (diff) | |
| parent | 86af950a735ad5aef786a92fa0b0f26bb482c38e (diff) | |
| download | mullvadvpn-6b95ceead2b6712d05a836e50395b754cc8605ad.tar.xz mullvadvpn-6b95ceead2b6712d05a836e50395b754cc8605ad.zip | |
Merge branch 'change-renderer-log-file-name'
Diffstat (limited to 'gui/src')
| -rw-r--r-- | gui/src/main/index.ts | 2 | ||||
| -rw-r--r-- | gui/src/shared/logging.ts | 46 |
2 files changed, 38 insertions, 10 deletions
diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts index 10f66b3f08..a5a437e099 100644 --- a/gui/src/main/index.ts +++ b/gui/src/main/index.ts @@ -31,6 +31,7 @@ import { SYSTEM_PREFERRED_LOCALE_KEY } from '../shared/gui-settings-state'; import { IpcMainEventChannel } from '../shared/ipc-event-channel'; import { backupLogFile, + cleanUpLogDirectory, getLogsDirectory, getMainLogFile, getRendererLogFile, @@ -264,6 +265,7 @@ class ApplicationMain { } } + cleanUpLogDirectory(); setupLogging(mainLogFile); } diff --git a/gui/src/shared/logging.ts b/gui/src/shared/logging.ts index c33f22a0b7..471fd758c8 100644 --- a/gui/src/shared/logging.ts +++ b/gui/src/shared/logging.ts @@ -28,7 +28,7 @@ export function getMainLogFile(): string { } export function getRendererLogFile(): string { - return path.join(getLogsDirectory(), 'frontend-renderer.log'); + return path.join(getLogsDirectory(), 'renderer.log'); } export function setupLogging(logFile: string) { @@ -48,18 +48,44 @@ export function setupLogging(logFile: string) { } } -export function backupLogFile(filePath: string): string | undefined { - const ext = path.extname(filePath); - const baseName = path.basename(filePath, ext); - const backupFile = path.join(path.dirname(filePath), baseName + '.old' + ext); +export function backupLogFile(filePath: string): boolean { + const exists = fileExists(filePath); + if (exists) { + const backupFilePath = getBackupFilePath(filePath); + fs.renameSync(filePath, backupFilePath); + } + + return exists; +} + +function getBackupFilePath(filePath: string): string { + const parsedPath = path.parse(filePath); + parsedPath.base = parsedPath.name + '.old' + parsedPath.ext; + return path.normalize(path.format(parsedPath)); +} +function fileExists(filePath: string): boolean { try { fs.accessSync(filePath); - fs.renameSync(filePath, backupFile); + return true; + } catch { + return false; + } +} + +// When cleaning up old log files they are first backed up and the next time removed. +export function cleanUpLogDirectory(): void { + const oldLogFileNames = ['frontend-renderer.log']; + + oldLogFileNames.forEach((fileName) => { + const filePath = path.join(getLogsDirectory(), fileName); + rotateOrDeleteFile(filePath); + }); +} - return backupFile; - } catch (error) { - // No previous log file exists - return undefined; +export function rotateOrDeleteFile(filePath: string) { + const backupFilePath = getBackupFilePath(filePath); + if (!backupLogFile(filePath) && fileExists(backupFilePath)) { + fs.unlinkSync(backupFilePath); } } |
