vulcain-corejs
Version:
Vulcain micro-service framework
87 lines (85 loc) • 2.93 kB
JavaScript
const system_1 = require('./../globals/system');
const util = require('util');
class VulcainLogger {
constructor() {
}
static get enableInfo() {
if (VulcainLogger._enableInfo)
VulcainLogger._enableInfo = system_1.System && system_1.System.createServiceConfigurationProperty("enableVerboseLog", false);
return VulcainLogger._enableInfo.value;
}
/**
* 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;
if (VulcainLogger.enableInfo || system_1.System.isTestEnvironnment)
this.write(requestContext, msg ? msg + ":" + error.stack : error.stack);
else
this.write(requestContext, msg ? msg + ":" + error.message : error.message);
}
/**
* 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,
correlationPath: requestContext && requestContext.correlationPath
};
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
;