@zishone/logan
Version:
A logger and log middleware. Why logan? Because it sounds like morgan
42 lines • 2.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const constants_1 = require("./constants");
const fs_1 = require("fs");
const dotnotate_1 = require("@zishone/dotnotate");
const winston_1 = __importDefault(require("winston"));
class Logger {
constructor(options) {
this.logger = winston_1.default.createLogger(options);
this.logger.add(new winston_1.default.transports.Stream({ stream: fs_1.createWriteStream('/dev/null') }));
}
enableInfo() {
this.logger.add(new winston_1.default.transports.Console({ level: constants_1.LOG_LEVELS.INFO }));
}
enableInfoFile(options) {
this.logger.add(new winston_1.default.transports.File(Object.assign(Object.assign({}, options), { level: constants_1.LOG_LEVELS.INFO, filename: (options === null || options === void 0 ? void 0 : options.filename) || `./.data/logs/${constants_1.LOG_LEVELS.INFO}.log` })));
}
enableErrorFile(options) {
this.logger.add(new winston_1.default.transports.File(Object.assign(Object.assign({}, options), { level: constants_1.LOG_LEVELS.ERROR, filename: (options === null || options === void 0 ? void 0 : options.filename) || `./.data/logs/${constants_1.LOG_LEVELS.ERROR}.log` })));
}
enableDebug() {
this.logger.add(new winston_1.default.transports.Console({ level: constants_1.LOG_LEVELS.DEBUG }));
}
info(message, args = {}) {
this.logger.log(constants_1.LOG_LEVELS.INFO, message, dotnotate_1.dotnotate(Object.assign(Object.assign({}, args), { timestamp: new Date().toISOString() })));
}
error(message, args = {}) {
this.logger.log(constants_1.LOG_LEVELS.ERROR, message, dotnotate_1.dotnotate(Object.assign(Object.assign({}, args), { timestamp: new Date().toISOString() })));
}
debug(message, args = {}) {
this.logger.log(constants_1.LOG_LEVELS.DEBUG, message, dotnotate_1.dotnotate(Object.assign(Object.assign({}, args), { timestamp: new Date().toISOString() })));
}
debugFunctionCall(functionName, functionArguments, args = {}) {
this.debug('Function called', Object.assign({ 'function.name': functionName, 'function.arguments': Object.values(functionArguments) }, args));
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map