diff --git a/package.json b/package.json index 30a5488..9052ff5 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@quasar/extras": "^1.16.4", "axios": "^1.2.1", "dayjs": "^1.11.10", + "electron-log": "^5.0.3", "pinia": "^2.0.11", "quasar": "^2.14.2", "tar-pack": "^3.4.1", @@ -52,4 +53,4 @@ "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/src-electron/electron-main.ts b/src-electron/electron-main.ts index a56bc8b..7753395 100644 --- a/src-electron/electron-main.ts +++ b/src-electron/electron-main.ts @@ -1,15 +1,36 @@ +import dayjs from 'dayjs'; import { app, BrowserWindow, ipcMain } from 'electron'; -// import path from 'path'; -import path from 'path'; -// import * as fs from 'fs'; -// const path = require('path'); -// import os from 'os'; -// const os = require('os'); +import log from 'electron-log'; import Listeners from './ipcListeners'; -// needed in case process is undefined under Linux -// const platform = process.platform || os.platform(); +const path = require('path'); +const os = require('os'); +const fs = require('fs'); -// app.allowRendererProcessReuse = true; +// Optional, initialize the logger for any renderer process +log.initialize(); +const currDate = dayjs().format('DD-MM-YYYY'); + +const logFolder = path.join( + process.platform === 'win32' ? app.getPath('appData') : os.homedir(), + 'Drehmal Installer', + 'logs' +); + +const getLogFileName: () => string = () => { + let index = 1; + let name = `${currDate}_${index}-installer.log`; + while (true) { + if (!fs.existsSync(path.join(logFolder, name))) break; + else name = `${currDate}_${index++}-installer.log`; + } + return name; +}; +// can't use function call in resolve path as it'll create a new file for each logger instance +const logFileName = getLogFileName(); +log.transports.file.resolvePathFn = () => path.join(logFolder, logFileName); +log.transports.file.format = '[{h}:{i}:{s}.{ms}] [{label}] {text}'; + +log.info('Logger initialised'); let mainWindow: BrowserWindow | undefined; diff --git a/src-electron/ipcListeners.ts b/src-electron/ipcListeners.ts index e926d8a..25721d7 100644 --- a/src-electron/ipcListeners.ts +++ b/src-electron/ipcListeners.ts @@ -1,6 +1,6 @@ import { ipcMain, BrowserWindow, app as ElectronApp } from 'electron'; // import path from 'path'; -// console.log('IPC Listener'); +// log.info('IPC Listener'); let browserWindow: BrowserWindow; let app: typeof ElectronApp; diff --git a/src/components/FolderSelect.vue b/src/components/FolderSelect.vue index 29f2474..d2b7ee4 100644 --- a/src/components/FolderSelect.vue +++ b/src/components/FolderSelect.vue @@ -12,6 +12,7 @@ diff --git a/src/components/MapDownload.vue b/src/components/MapDownload.vue index 93a91a3..9be2f03 100644 --- a/src/components/MapDownload.vue +++ b/src/components/MapDownload.vue @@ -59,14 +59,18 @@