Я работаю над лямбда-проектом, и для ведения журнала я использую winston
и winston-aws-cloudwatch
для записи данных в cloud watch
. Я не получаю логи, которые должен был получить, ошибок нет, другие транспортеры, такие как Console
и File
, работают. Это мой код
const winston = require('winston');
const CloudWatchTransport = require('winston-aws-cloudwatch');
const logger = winston.createLogger({
levels: winston.config.npm.levels,
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
});
// local logging
if (process.env.LAMBDA_STAGE === 'dev') {
logger.add(
new winston.transports.Console({
format: winston.format.combine(winston.format.colorize({ all: true })),
level: 'debug',
})
);
logger.add(new winston.transports.File({ filename: 'logs/requests.log' }));
logger.add(new winston.transports.File({ filename: 'logs/error.log', level: 'error' }));
}
if (process.env.LAMBDA_STAGE !== 'dev') {
// for log stream naming - one log stream per hour to log
const today = new Date();
const logStreamName = `${today.getFullYear()}-${today.getMonth()}-${today.getDate()}-${today.getHours()}`;
const loggerCWOptions = {
logGroupName: process.env.REQUEST_LOG_GROUP_NAME,
logStreamName,
createLogGroup: false,
createLogStream: true,
awsConfig: {
accessKeyId: process.env.CW_ACCESS_KEY_ID,
secretAccessKey: process.env.CW_SECRET_ACCESS_KEY,
region: process.env.CW_REGION
},
formatLog: (item) => `${item.level}: ${item.message}}`
};
// request cloudwatch
logger.add(new CloudWatchTransport(loggerCWOptions));
// error cloudwatch
logger.add(new CloudWatchTransport({
...loggerCWOptions,
logGroupName: process.env.ERROR_LOG_GROUP_NAME
}));
}
logger.on('finish', (info) => {
console.log('Finished: ', info);
});
logger.on('error', (err) => {
console.log('Error: ', err);
});
module.exports = logger;
Может ли кто-нибудь увидеть какие-либо проблемы с моим кодом или что-то, что я здесь пропустил?
- Проект является лямбда-проектом
- Попадание туда, где у меня лог
logger.log({
message: `Cannot find ${req.method} endpoint for ${req.path}`,
level: 'error',
});
console.log('Come on logger boy???'); // this prints in lambda cloud watch stream
- дало полное разрешение соответствующей роли