UNPKG

powr-sdk-api

Version:

Shared API core library for PowrStack projects

35 lines (30 loc) 842 B
"use strict"; const winston = require('winston'); const { S3Transport } = require('../utils/s3'); // Custom format for logs const logFormat = winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json()); // Create base transports array with console transport const transports = [new winston.transports.Console()]; // Add S3 transport only in production if (process.env.NODE_ENV === 'production') { transports.push(new S3Transport({ bucket: process.env.AWS_LOG_BUCKET_NAME, prefix: 'logs', bufferSize: 100, flushInterval: 5000 })); } // Create the logger const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', format: logFormat, defaultMeta: { service: process.env.LOG_SERVICE_NAME }, transports }); module.exports = logger;