lin-mizar
Version:
The core library of Lin CMS
49 lines (48 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConsoleTransport = void 0;
const egg_logger_1 = require("egg-logger");
const utils = require('egg-logger/lib/utils');
const levels = require('egg-logger/lib/level');
const format_1 = require("./format");
/**
* output log to console {@link Transport}。
* specifical level by EGG_LOG has the highest priority
*/
class ConsoleTransport extends egg_logger_1.Transport {
/**
* @constructor
* @param {Object} options
* - {Array} [stderrLevel = ERROR] - output to stderr level, must higher than options.level
*/
constructor(options) {
super(options);
this.options.stderrLevel = utils.normalizeLevel(this.options.stderrLevel);
}
get defaults() {
// @ts-ignore
return utils.assign(super.defaults, {
stderrLevel: 'ERROR'
});
}
/**
* output log, see {@link Transport#log}
* if stderrLevel presents, will output log to stderr
* @param {String} level - log level, in upper case
* @param {Array} args - all arguments
* @param {Object} meta - meta infomations
*/
log(level, args, meta) {
meta = meta || {};
meta.formatter = format_1.consoleFormatter;
const message = super.log(level, args, meta);
if (levels[level] >= this.options.stderrLevel &&
levels[level] < levels['NONE']) {
process.stderr.write(message);
}
else {
process.stdout.write(message);
}
}
}
exports.ConsoleTransport = ConsoleTransport;