UNPKG

vulcain-corejs

Version:
87 lines (85 loc) 2.93 kB
"use strict"; 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