From 1819b7f82d16495323459b55c08f80687d49e01e Mon Sep 17 00:00:00 2001 From: Vishwas Shashidhar Date: Thu, 24 Aug 2017 16:52:32 +0530 Subject: [PATCH] electron-97: refactored the code as per the ticket (point 5 i.e. local logging covered) --- js/log.js | 38 ++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 39 insertions(+) diff --git a/js/log.js b/js/log.js index be63f3a5..83b913d3 100644 --- a/js/log.js +++ b/js/log.js @@ -1,6 +1,10 @@ 'use strict'; +const electronLog = require('electron-log'); + const getCmdLineArg = require('./utils/getCmdLineArg.js'); +const { isDevEnv } = require('./utils/misc'); +const logLevels = require('./enums/logLevels.js'); const MAX_LOG_QUEUE_LENGTH = 100; @@ -12,6 +16,9 @@ class Logger { // holds log messages received before logger has been registered. this.logQueue = []; + + // Initializes the local logger + initializeLocalLogger(); } /** @@ -26,6 +33,10 @@ class Logger { return; } + if (isDevEnv) { + logLocally(level, details); + } + let logMsg = { level: level, details: details, @@ -84,6 +95,33 @@ class Logger { let loggerInstance = new Logger(); +/** + * Initializes the electron logger for local logging + */ +function initializeLocalLogger() { + electronLog.transports.file.level = 'debug'; + electronLog.transports.file.format = '{h}:{i}:{s}:{ms} {text}'; + electronLog.transports.file.maxSize = 10 * 1024 * 1024; + electronLog.transports.file.appName = 'Symphony'; +} + +/** + * Logs locally using the electron-logger + * @param level + * @param message + */ +function logLocally(level, message) { + switch (level) { + case logLevels.ERROR: electronLog.error(message); break; + case logLevels.CONFLICT: electronLog.error(message); break; + case logLevels.WARN: electronLog.warn(message); break; + case logLevels.ACTION: electronLog.warn(message); break; + case logLevels.INFO: electronLog.info(message); break; + case logLevels.DEBUG: electronLog.debug(message); break; + default: electronLog.debug(message); + } +} + // Logger class is only exposed for testing purposes. module.exports = { Logger: Logger, diff --git a/package.json b/package.json index eed67620..e8547201 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "async.mapseries": "^0.5.2", "auto-launch": "^5.0.1", "electron-dl": "^1.9.0", + "electron-log": "^2.2.7", "electron-spellchecker": "^1.2.0", "electron-squirrel-startup": "^1.0.0", "filesize": "^3.5.10",