UNPKG

log-vista

Version:

LogVista Agent - Lightweight system monitoring and log collection for any project/language

63 lines (54 loc) 1.67 kB
const fs = require('fs'); const path = require('path'); const winston = require('winston'); class Logger { constructor() { // Ensure logs directory exists const logsDir = path.join(__dirname, '../logs'); if (!fs.existsSync(logsDir)) { fs.mkdirSync(logsDir, { recursive: true }); } this.logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json() ), defaultMeta: { service: 'logvista-agent' }, transports: [ // Write all logs with level 'error' and below to error.log new winston.transports.File({ filename: path.join(logsDir, 'error.log'), level: 'error' }), // Write all logs with level 'info' and below to combined.log new winston.transports.File({ filename: path.join(logsDir, 'combined.log') }) ] }); // Add console transport for development if (process.env.NODE_ENV !== 'production') { this.logger.add(new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.simple() ) })); } } info(message, meta = {}) { this.logger.info(message, meta); } error(message, meta = {}) { this.logger.error(message, meta); } warn(message, meta = {}) { this.logger.warn(message, meta); } debug(message, meta = {}) { this.logger.debug(message, meta); } } module.exports = new Logger();