I tried by setting the 'filename' variable, but it didn't work, and the file uploaded to S3 has the format `timestamp+branch+hostname.log."
const { createLogger, transports, format } = require('winston');
const { S3StreamLogger } = require('s3-streamlogger');
const AWS = require('aws-sdk');
require("dotenv").config();
const getLogFileName = (level) => {
return `server_${level}.log`;
};
const s3stream = new S3StreamLogger({
bucket: process.env.AWS_BUCKET_NAME,
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION,
folder: "logs",
filename: "logs/server.log",
});
const customerLogger = createLogger({
transports: [
new transports.File({
filename: 'app/logs/server.log',
level: 'info',
format: format.combine(format.timestamp(), format.json()),
}),
new transports.File({
filename: 'app/logs/server_error.log',
level: 'error',
format: format.combine(format.timestamp(), format.json()),
}),
new transports.File({
filename: 'app/logs/server_warning.log',
level: 'warn',
format: format.combine(format.timestamp(), format.json()),
}),
new transports.Stream({
stream: s3stream,
}),
],
});
module.exports = customerLogger;
I'm really not sure how to solve this issue as there isn't too much documentation for the s3-streamlogger library. I'm hoping for some help.