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

如何将AWS Elastic Beanstalk中.NET 6应用的控制台日志发布到CloudWatch

如何将AWS Elastic Beanstalk Windows服务器上的.NET 6控制台日志发送到CloudWatch日志组

1. 开启Elastic Beanstalk的CloudWatch日志流功能

  • 登录AWS控制台,进入你的Elastic Beanstalk环境。
  • 切换到配置标签页,选择软件配置项,找到日志选项。
  • 勾选Stream logs to CloudWatch,指定目标日志组名称(可使用默认值或自定义),设置日志保留天数。
  • 保存配置后,EB会自动更新环境并为实例添加必要的IAM权限(默认的AWSElasticBeanstalkWebTier权限已包含CloudWatch日志推送所需的logs:CreateLogStream、logs:PutLogEvents等动作,自定义权限组需确保包含这些动作)。

2. 配置.NET 6应用将控制台日志输出到EB监控路径

Windows平台下,EB默认会收集特定路径的日志文件并推送到CloudWatch,你需要让.NET 6的控制台日志输出到这些路径之一,或自定义路径并告知EB监控:

方法A:输出到EB默认监控路径

修改项目的Program.cs,添加文件日志输出,将日志写入EB默认监控的路径(如C:\Program Files\Amazon\ElasticBeanstalk\logs\application):

var builder = WebApplication.CreateBuilder(args);

// 同时输出日志到控制台和EB监控文件
builder.Logging.AddConsole()
               .AddFile(@"C:\Program Files\Amazon\ElasticBeanstalk\logs\application\app-console.log");

// 其他服务配置代码...

var app = builder.Build();

// 应用中间件配置代码...

app.Run();

注:需先安装NuGet包Microsoft.Extensions.Logging.File以使用AddFile方法。

方法B:自定义路径并通过EB配置文件指定监控

若想使用自定义路径(如C:\inetpub\wwwroot\logs\console.log),可通过EB的.ebextensions配置文件实现:

  1. 在项目根目录创建.ebextensions文件夹,新建cloudwatch-logs.config文件,内容如下:
files:
  "C:\\Program Files\\Amazon\\ElasticBeanstalk\\config\\taillogs.d\\app-console.conf":
    content: |
      C:\inetpub\wwwroot\logs\console.log
  1. 修改Program.cs,将日志输出到自定义路径:
builder.Logging.AddConsole()
               .AddFile(@"C:\inetpub\wwwroot\logs\console.log");
  1. 重新部署应用到EB,EB会自动识别配置并开始监控推送该文件的日志到CloudWatch。

3. 验证日志推送状态

  • 登录CloudWatch控制台,进入指定的日志组,检查是否生成新的日志流且包含.NET 6应用的控制台日志。
  • 若未看到日志,可通过EB控制台的日志标签页下载实例日志,排查是否存在路径不存在、权限不足等日志收集错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:30:58