powr-sdk-api
Version:
Shared API core library for PowrStack projects
35 lines (30 loc) • 842 B
JavaScript
;
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;