如何使用node将日志发送到localstack cloudwatch日志。
我正在使用npm
const winston = require('winston')
const CloudWatchTransport = require('winston-aws-cloudwatch')发布于 2020-08-05 13:45:32
您可能应该以winston-aws-cloudwatch的身份使用winston-cloudwatch,因为它的使用率更高且易于维护。但是,由于选择由您决定,并且如果您仍然希望使用winston-aws-cloudwatch,您可以将awsConfig中的端点添加到http://localhost:4586中,因为默认情况下,本地堆栈使用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');或
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用户,并使用该用户创建访问密钥并使用它。
如果你想玩localstack,你可能需要安装awslocal
要验证是否已创建日志组,可以尝试使用awslocal logs describe-log-groups
对于其他命令行界面命令,您可以参考AWS CLI documetation
对于本地,您可以将aws替换为awslocal。
发布于 2020-08-04 20:36:26
基于此示例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的高级示例
https://stackoverflow.com/questions/63246569
复制相似问题