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 @@