const baseLogTag = 'XFrameworkElectronApp'; let enableLogging = true; /** * Log Tags ... */ const XLogTag = { Debug: 'debug', Info: 'info', Warn: 'warn', Error: 'error' }; /** * retrieve an instance of XLogMessage ... * * @param {string} tag tag of logging ... * @param {string} message content of log message ... * @param {array of any} args args of content which required to logging ... * @param {number} timestamp logging time ... * * @returns an instance of log message object ... */ function XLogMessage(tag, message, args, timestamp) { // if (!tag) { throw 'Tag not provided ...'; } // if (!message) { throw 'Message not provided ...'; } // if (!args) { args = []; } // if (!timestamp) { timestamp = new Date().getTime(); } // return { tag, message, args, timestamp, }; } /** * log data ... * * @param {XLogMessage} message */ function log(message) { // if (!message || !message.tag || !message.message || !enableLogging) { return; } // message.timestamp = new Date().getTime(); // switch (message.tag) { // case XLogTag.Debug: logDebug(message); break; // case XLogTag.Info: logInfo(message); break; // case XLogTag.Warn: logWarn(message); break; // case XLogTag.Error: logError(message); break; // default: break; } } /** * Log Debug ... * * @param {XLogMessage} message */ function logDebug(message) { // if (!message || !message.message || !enableLogging || message.tag !== XLogTag.Debug) { return; } // message.timestamp = new Date().getTime(); // console.debug(`${baseLogTag}:${message.tag} => ${message.message}`, ...message.args); } /** * Log Info ... * * @param {XLogMessage} message */ function logInfo(message) { // if (!message || !message.message || !enableLogging || message.tag !== XLogTag.Info) { return; } // message.timestamp = new Date().getTime(); // console.info(`${baseLogTag}:${message.tag} => ${message.message}`, ...message.args); } /** * Log Warn ... * * @param {XLogMessage} message */ function logWarn(message) { // if (!message || !message.message || !enableLogging || message.tag !== XLogTag.Warn) { return; } // message.timestamp = new Date().getTime(); // console.warn(`${baseLogTag}:${message.tag} => ${message.message}`, ...message.args); } /** * Log Error ... * * @param {XLogMessage} message */ function logError(message) { // if (!message || !message.message || !enableLogging || message.tag !== XLogTag.Error) { return; } // message.timestamp = new Date().getTime(); // console.error(`${baseLogTag}:${message.tag} => ${message.message}`, ...message.args); } // // Module Eports ... module.exports = { // enableLogging: () => { enableLogging = true; }, disableLogging: () => { enableLogging = false; }, isLoggingEnable: () => { return enableLogging; }, // XLogTag: XLogTag, XLogMessage: XLogMessage, log: log, logDebug: logDebug, logInfo: logInfo, logWarn: logWarn, logError: logError, }