vulcain-corejs
Version:
Vulcain micro-service framework
91 lines (89 loc) • 2.98 kB
JavaScript
const system_1 = require("./../globals/system");
const util = require("util");
class VulcainLogger {
static get enableInfo() {
if (!VulcainLogger._enableInfo)
VulcainLogger._enableInfo = system_1.System && system_1.System.createServiceConfigurationProperty("enableVerboseLog", false);
return VulcainLogger._enableInfo.value;
}
constructor() {
}
/**
* Log an error
*
* @param {any} requestContext Current requestContext
* @param {Error} error Error instance
* @param {string} [msg] Additional message
*
* @memberOf VulcainLogger
*/
error(requestContext, error, msg) {
if (!error)
return;
let txt = (msg || "") + ": ";
if (VulcainLogger.enableInfo || system_1.System.isTestEnvironnment) {
txt = txt + (error.stack || error.message);
}
else {
txt = txt + (error.message);
}
this.write(requestContext, txt);
}
/**
* Log a message info
*
* @param {any} requestContext Current requestContext
* @param {string} msg Message format (can include %s, %j ...)
* @param {...Array<string>} params Message parameters
*
* @memberOf VulcainLogger
*/
info(requestContext, msg, ...params) {
this.write(requestContext, util.format(msg, ...params));
}
/**
* Log a verbose message. Verbose message are enable by service configuration property : enableVerboseLog
*
* @param {any} requestContext Current requestContext
* @param {string} msg Message format (can include %s, %j ...)
* @param {...Array<string>} params Message parameters
*
* @memberOf VulcainLogger
*/
verbose(requestContext, msg, ...params) {
if (VulcainLogger.enableInfo || system_1.System.isDevelopment)
this.write(requestContext, util.format(msg, ...params));
}
/**
* Don't use directly
*
* @param {any} requestContext
* @param {any} info
*
* @memberOf VulcainLogger
*/
write(requestContext, info) {
let trace = {
service: system_1.System.serviceName,
version: system_1.System.serviceVersion,
timestamp: system_1.System.nowAsString(),
correlationId: (requestContext && requestContext.correlationId) || null,
correlationPath: (requestContext && requestContext.correlationPath) || null
};
if (typeof info === "string") {
trace.message = info;
}
else {
trace.info = info;
}
if (system_1.System.isTestEnvironnment) {
util.log(`${trace.correlationId}:${trace.correlationPath} - ${trace.message || (trace.info && JSON.stringify(trace.info))}`);
}
else {
console.log("%j", trace);
}
}
}
exports.VulcainLogger = VulcainLogger;
//# sourceMappingURL=vulcainLogger.js.map
;