Как отправлять журналы в журналы localstack cloudwatch с помощью node.
я использую нпм
const winston = require('winston')
const CloudWatchTransport = require('winston-aws-cloudwatch')
Как отправлять журналы в журналы localstack cloudwatch с помощью node.
я использую нпм
const winston = require('winston')
const CloudWatchTransport = require('winston-aws-cloudwatch')
Вероятно, вам следует использовать winston-cloudwatch
вместо winston-aws-cloudwatch
, потому что он чаще используется и поддерживается. Но так как выбор за вами, и если вы все же хотите использовать winston-aws-cloudwatch
, вы можете добавить конечную точку в awsConfig в http://localhost:4586
, потому что по умолчанию localstack использует 4586
в качестве порта для cloudwatch.
Пример для winston-cloudwatch
приведен ниже.
const AWS = require('aws-sdk');
const WinstonCloudWatch = require('winston-cloudwatch');
winston.add(new WinstonCloudWatch({
awsRegion: 'us-east-1',
logGroupName: 'your-log-group-name',
logStreamName: 'your-log-stream-name',
jsonMessage: true,
}));
winston.info('I am done');
or
const AWS = require('aws-sdk');
const WinstonCloudWatch = require('winston-cloudwatch');
const logger = winston.createLogger({
transports: [
new WinstonCloudWatch({
logGroupName: 'log-group-name',
logStreamName: 'log-stream-name',
awsRegion: 'us-east-1',
jsonMessage: true
})
]
});
logger.error('I am done');
Фрагмент может заканчиваться на Invalid token error
. Вы можете использовать awslocal iam
для создания пользователя IAM, создать ключ доступа с ним и использовать его.
Вам может потребоваться установить awslocal, если вы хотите поиграть с localstack
Чтобы проверить, была ли создана группа журналов, вы можете попробовать с помощью awslocal logs describe-log-groups
Другие команды CLI можно найти в документации AWS CLI< /а>
Для локального можно заменить aws
на awslocal
.
На основе этого примера https://github.com/lazywithclass/winston-cloudwatch/blob/747ae3c2292fdae6c046394938f159b4c7a23802/examples/simple.js
var winston = require('winston'),
WinstonCloudWatch = require('../index');
// when you don't provide a name the default one
// is CloudWatch
winston.add(new WinstonCloudWatch({
logGroupName: 'testing',
logStreamName: 'first',
awsRegion: 'us-east-1'
}));
winston.error('1');
Расширенный пример с использованием winston-cloud