From 2b3cd2d3abf46e97ca96e1b0a8ec5ae481fad297 Mon Sep 17 00:00:00 2001 From: Maigo Erit Date: Sat, 15 May 2021 21:42:00 +0300 Subject: [PATCH] 3.18.4 Disabled logging to file by default. --- README.md | 6 ++--- client/package.json | 2 +- client/src/components/Settings/AppForm.tsx | 31 +++++++++++++++++++++- client/src/logger.ts | 13 +++++++++ client/src/services/settings.api.ts | 9 +++++++ electron/app/log-manager.ts | 15 ++++++++--- electron/package.json | 4 +-- electron/preloadStuff.js | 1 + 8 files changed, 71 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2ca14382..69625875 100755 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@ | Operating System | Download | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Windows (32 and 64-bit) | Get it on Windows | -| macOS | Get it on macOS | -| Linux | Get it on Linux | +| Windows (32 and 64-bit) | Get it on Windows | +| macOS | Get it on macOS | +| Linux | Get it on Linux | # Feedback diff --git a/client/package.json b/client/package.json index e56b7255..28d4fe73 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "tockler", - "version": "3.18.3", + "version": "3.18.4", "private": true, "dependencies": { "@analytics/google-analytics": "^0.5.2", diff --git a/client/src/components/Settings/AppForm.tsx b/client/src/components/Settings/AppForm.tsx index 6b9be301..41c4eb4b 100644 --- a/client/src/components/Settings/AppForm.tsx +++ b/client/src/components/Settings/AppForm.tsx @@ -1,15 +1,20 @@ -import { Card, Form, Switch } from 'antd'; +import { Card, Form, Switch, Typography } from 'antd'; import React from 'react'; import { getOpenAtLogin, getIsAutoUpdateEnabled, saveOpenAtLogin, saveIsAutoUpdateEnabled, + getIsLoggingEnabled, + saveIsLoggingEnabled, } from '../../services/settings.api'; +const { Text } = Typography; + export const AppForm = () => { const openAtLogin = getOpenAtLogin(); const isAutoUpdateEnabled = getIsAutoUpdateEnabled(); + const isLoggingEnabled = getIsLoggingEnabled(); const onChangeOpenAtLogin = value => { saveOpenAtLogin(value); }; @@ -17,6 +22,23 @@ export const AppForm = () => { const onChangeAutoUpdate = value => { saveIsAutoUpdateEnabled(value); }; + const onChangeLogging = value => { + saveIsLoggingEnabled(value); + }; + + const appName = process.env.REACT_APP_NAME; + const platform = (window as any).platform; + + const linuxPath = `~/.config/${appName}/logs/main.log`; + const macOSPath = `~/Library/Logs/${appName}/main.log`; + const windowsPath = `%USERPROFILE%\\AppData\\Roaming\${appName}\\logs\\main.log`; + + let logPath = linuxPath; + if (platform === 'win32') { + logPath = windowsPath; + } else if (platform === 'darwin') { + logPath = macOSPath; + } return ( @@ -28,6 +50,13 @@ export const AppForm = () => { {' '} Auto update + + {' '} + Enable logging (Applies after restart) +
+ Log path: {logPath} +
+
); }; diff --git a/client/src/logger.ts b/client/src/logger.ts index 9e2a0a5f..b5a7e323 100644 --- a/client/src/logger.ts +++ b/client/src/logger.ts @@ -1 +1,14 @@ +import { getIsLoggingEnabled } from './services/settings.api'; + export const Logger: any = (window as any).logger; + +const isProd = process.env.NODE_ENV === 'production'; +Logger.transports.console.level = isProd ? 'warn' : 'debug'; + +let isLoggingEnabled = getIsLoggingEnabled(); + +if (isLoggingEnabled) { + Logger.transports.file.level = 'debug'; +} else { + Logger.transports.file.level = false; +} diff --git a/client/src/services/settings.api.ts b/client/src/services/settings.api.ts index 56030a64..9046f073 100644 --- a/client/src/services/settings.api.ts +++ b/client/src/services/settings.api.ts @@ -13,6 +13,9 @@ export function getOpenAtLogin() { export function getIsAutoUpdateEnabled() { return config.get('isAutoUpdateEnabled') as boolean; } +export function getIsLoggingEnabled() { + return config.get('isLoggingEnabled') as boolean; +} export function saveOpenAtLogin(openAtLogin) { if (openAtLogin !== getOpenAtLogin()) { @@ -38,6 +41,12 @@ export function saveIsAutoUpdateEnabled(isAutoUpdateEnabled) { config.set('isAutoUpdateEnabled', isAutoUpdateEnabled); } } +export function saveIsLoggingEnabled(isLoggingEnabled) { + if (isLoggingEnabled !== getIsLoggingEnabled()) { + Logger.debug('Setting isLoggingEnabled', isLoggingEnabled); + config.set('isLoggingEnabled', isLoggingEnabled); + } +} export async function updateByName(name, jsonData) { Logger.debug('updateByName', JSON.stringify(jsonData)); diff --git a/electron/app/log-manager.ts b/electron/app/log-manager.ts index 067020d8..acec7824 100755 --- a/electron/app/log-manager.ts +++ b/electron/app/log-manager.ts @@ -1,10 +1,12 @@ import * as log from 'electron-log'; import * as Sentry from '@sentry/electron'; import { app } from 'electron'; +import config from './config'; const version = app.getVersion(); -if (process.env.NODE_ENV === 'production') { +const isProd = process.env.NODE_ENV === 'production'; +if (isProd) { Sentry.init({ dsn: process.env.SENTRY_DSN, environment: process.env.NODE_ENV, @@ -46,8 +48,7 @@ const sentryTransportConsole = (msgObj) => { (log as any).transports.console = sentryTransportConsole; -log.transports.console.level = 'debug'; -log.transports.file.level = 'debug'; +let isLoggingEnabled = config.persisted.get('isLoggingEnabled'); export class LogManager { logger; @@ -58,8 +59,16 @@ export class LogManager { getLogger(name) { const logObj = log.create(name); + + log.transports.console.level = isProd ? 'warn' : 'debug'; (logObj as any).transports.console = sentryTransportConsole; + if (isLoggingEnabled) { + logObj.transports.file.level = 'debug'; + } else { + logObj.transports.file.level = false; + } + return logObj; } } diff --git a/electron/package.json b/electron/package.json index 68448c04..58b9f4a5 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "tockler", - "version": "3.18.3", + "version": "3.18.4", "description": "Automatically track applications usage and working time", "author": "Maigo Erit ", "license": "GPL-2.0", @@ -31,7 +31,7 @@ "eiphop": "^1.0.13", "electron-context-menu": "2.3.0", "electron-is-dev": "^1.2.0", - "electron-log": "^4.3.1", + "electron-log": "^4.3.5", "electron-store": "6.0.1", "electron-updater": "4.3.5", "hazardous": "^0.3.0", diff --git a/electron/preloadStuff.js b/electron/preloadStuff.js index 799a53ae..d8956fcd 100644 --- a/electron/preloadStuff.js +++ b/electron/preloadStuff.js @@ -59,5 +59,6 @@ log.transports.console = sentryTransportConsole; window.Sentry = Sentry; window.version = version; window.Store = Store; +window.platform = electron.remote.process.platform; window.logger = log; window.ipcRenderer = electron.ipcRenderer;