devebot
Version:
Nodejs Microservice Framework
53 lines (52 loc) • 1.63 kB
JavaScript
;
const Promise = require("bluebird");
const lodash = require("lodash");
const chores = require("../utils/chores");
const commandConfig = {};
const commandObject = {
info: {
alias: "log-set",
description: "Enable/disable transports and change its logging levels",
options: [{
abbr: "t",
name: "transports",
description: "The list of transports will be adjusted",
required: false
}, {
abbr: "e",
name: "enabled",
description: "The enabled state (true/false) applied for transports",
required: false
}, {
abbr: "l",
name: "level",
description: "The new level label applied for transports",
required: false
}]
},
handler: function (options, payload, ctx) {
options = options || {};
const loggingFactory = chores.pickProperty("loggingFactory", [ctx, this, commandConfig], {});
const originLogger = loggingFactory.getLogger({
type: "origin"
});
const transports = options["transports"];
const transportList = lodash.isEmpty(transports) ? null : transports.split(",");
if (options["enabled"]) {
const enabled = options["enabled"] === false || options["enabled"] === "false" ? false : true;
originLogger.activate(transportList, enabled);
}
if (options["level"]) {
const level = options["level"];
originLogger.setLevel(level, transportList);
return Promise.resolve({
currentLogLevel: level
});
}
return Promise.resolve({});
}
};
module.exports = function (params) {
lodash.merge(commandConfig, params);
return commandObject;
};