Initial Commit ...
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user