You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nestjs中配置Winston并添加AWS Cloudwatch日志传输器

NestJS 集成 winston-cloudwatch 操作方法

步骤1:安装依赖

  • 安装核心依赖包:npm install winston-cloudwatch
  • TypeScript 项目需额外安装类型定义:npm install -D @types/winston-cloudwatch

步骤2:修改loggerConfig配置新增传输器

你不需要调整app.module.ts中已有的WinstonModule引入逻辑,只需要在你现有的loggerConfig配置的transports数组中,新增winston-cloudwatch实例即可,参考配置如下:

import * as WinstonCloudWatch from 'winston-cloudwatch';
import { WinstonModuleOptions } from 'nest-winston';
import * as winston from 'winston';

export const loggerConfig: WinstonModuleOptions = {
  // 保留你原有配置的level、format等基础参数
  level: process.env.NODE_ENV === 'production' ? 'info' : 'debug',
  format: winston.format.combine(
    winston.format.timestamp(),
    winston.format.json()
  ),
  transports: [
    // 保留你原有配置的其他传输器,比如控制台输出等
    new winston.transports.Console(),
    // 新增CloudWatch传输器
    new WinstonCloudWatch({
      logGroupName: '替换为你的日志组名称',
      logStreamName: '替换为你的日志流名称',
      awsRegion: process.env.AWS_REGION || 'cn-north-1',
      // 若部署环境使用IAM角色授权,可省略以下两个密钥参数,SDK会自动读取实例绑定的凭证
      awsAccessKeyId: process.env.AWS_ACCESS_KEY_ID,
      awsSecretKey: process.env.AWS_SECRET_ACCESS_KEY,
      // 可选扩展配置
      jsonMessage: true, // 自动将日志格式转为JSON
      uploadRate: 2000, // 日志批量上报间隔,单位毫秒
    })
  ]
};

可选:运行时动态添加传输器

如果你的场景需要在应用启动后按需动态添加CloudWatch传输器,可以直接注入Nest的Logger实例调用add方法:

import { Injectable, Logger } from '@nestjs/common';
import * as WinstonCloudWatch from 'winston-cloudwatch';

@Injectable()
export class LogService {
  constructor(private readonly logger: Logger) {
    // 比如仅生产环境开启CloudWatch上报
    if (process.env.NODE_ENV === 'production') {
      this.logger.add(new WinstonCloudWatch({
        // 配置参数同上
      }))
    }
  }
}

注意事项

  • 确保使用的AWS凭证对应账号具备logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents权限
  • 开发环境可注释掉CloudWatch传输器,避免不必要的日志上报产生额外费用

内容的提问来源于stack exchange,提问作者zedian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:36:03