UNPKG

jsm-core

Version:
43 lines (42 loc) 2.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const winston_1 = __importDefault(require("winston")); const context_1 = require("../../context"); const transports = []; // In production, just use the console transport if (process.env.NODE_ENV !== 'development') { transports.push(new winston_1.default.transports.Console({ level: (0, context_1.getRegistry)().getConfig('logging.level'), format: winston_1.default.format.combine(winston_1.default.format.simple(), winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss', }), winston_1.default.format.colorize(), winston_1.default.format.splat(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json()), })); } else { // In development, use more detailed console logging transports.push(new winston_1.default.transports.Console({ format: winston_1.default.format.combine(winston_1.default.format.cli(), winston_1.default.format.colorize(), winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss', }), winston_1.default.format.align(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat()), })); } // You can uncomment and add file transports if needed // transports.push(new winston.transports.File({ // level: 'error', // filename: 'logs/errors.log', // })); // transports.push(new winston.transports.File({ filename: 'logs/combined.log' })); // Create the logger instance const LoggerInstance = winston_1.default.createLogger({ level: (0, context_1.getRegistry)().getConfig('logging.level'), levels: winston_1.default.config.npm.levels, // Standard levels like 'info', 'debug', etc. format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss', }), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat(), winston_1.default.format.json() // Or you can use prettyPrint for development ), transports, }); exports.default = LoggerInstance;