diff --git a/src/api/common.ts b/src/api/common.ts index a96891168..8c25ccdb6 100644 --- a/src/api/common.ts +++ b/src/api/common.ts @@ -9,4 +9,4 @@ export const selectRootDirectory = async (): Promise => { } }; -export { logToDisk } from '../services/logging'; +export { logToDisk, openLogDirectory } from '../services/logging'; diff --git a/src/preload.ts b/src/preload.ts index e657b4425..ae60dbbcb 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -32,7 +32,7 @@ import { setExportRecord, exists, } from './api/export'; -import { selectRootDirectory, logToDisk } from './api/common'; +import { selectRootDirectory, logToDisk, openLogDirectory } from './api/common'; import { fixHotReloadNext12 } from './utils/preload'; import { isFolder, getDirFiles } from './api/fs'; @@ -77,4 +77,5 @@ windowObject['ElectronAPIs'] = { updateWatchMappingSyncedFiles, updateWatchMappingIgnoredFiles, logToDisk, + openLogDirectory, }; diff --git a/src/services/logging.ts b/src/services/logging.ts index 4f177447c..683c46c98 100644 --- a/src/services/logging.ts +++ b/src/services/logging.ts @@ -1,8 +1,13 @@ import { LOG_FILENAME, MAX_LOG_SIZE } from '../config'; import log from 'electron-log'; +import { ipcRenderer } from 'electron'; log.transports.file.fileName = LOG_FILENAME; log.transports.file.maxSize = MAX_LOG_SIZE; export function logToDisk(logLine: string) { log.info(logLine); } + +export function openLogDirectory() { + ipcRenderer.invoke('open-log-dir'); +} diff --git a/src/utils/ipcComms.ts b/src/utils/ipcComms.ts index 6235e7e5c..295a436b4 100644 --- a/src/utils/ipcComms.ts +++ b/src/utils/ipcComms.ts @@ -6,6 +6,7 @@ import { Notification, safeStorage, app, + shell, } from 'electron'; import { createWindow } from './createWindow'; import { buildContextMenu } from './menu'; @@ -96,4 +97,8 @@ export default function setupIpcComs( ipcMain.handle('get-path', (_, message) => { return app.getPath(message); }); + + ipcMain.handle('open-log-dir', () => { + shell.openPath(app.getPath('logs')); + }); }