UNPKG

@zishone/logan

Version:

A logger and log middleware. Why logan? Because it sounds like morgan

42 lines 2.45 kB
"use strict"; 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