UNPKG

vulcain-corejs

Version:
91 lines (89 loc) 2.98 kB
"use strict"; 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