UNPKG

powr-sdk-api

Version:

Shared API core library for PowrStack projects

50 lines (45 loc) 1.25 kB
"use strict"; const winston = require("winston"); const { S3Transport } = require("./s3"); const { GCSTransport } = require("./gcs"); // 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 and if enabled if (process.env.NODE_ENV === "production") { if (process.env.LOG_DESTINATION === "s3") { console.log("Adding S3 transport"); transports.push(new S3Transport({ bucket: process.env.LOG_BUCKET_NAME, prefix: "logs", bufferSize: 100, flushInterval: 5000 })); } if (process.env.LOG_DESTINATION === "gcs") { console.log("Adding GCS transport"); transports.push(new GCSTransport({ bucket: process.env.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;