jsm-core
Version:
Core library for JSM project
43 lines (42 loc) • 2.23 kB
JavaScript
"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;