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

.Net Core 5.0 如何使用Serilog配置日志输出到AWS Cloudwatch

实现步骤

第一步:安装必要NuGet包

你需要先安装两个依赖包:

  • Serilog.Sinks.AwsCloudWatch:Serilog对接AWS CloudWatch的核心Sink组件
  • AWSSDK.CloudWatchLogs:AWS CloudWatch日志服务的官方SDK
    你可以通过NuGet包管理器搜索安装,也可以直接使用dotnet CLI命令安装:
    dotnet add package Serilog.Sinks.AwsCloudWatch
    dotnet add package AWSSDK.CloudWatchLogs

第二步:修改appsettings配置

直接在你现有Serilog节点的WriteTo配置段中新增CloudWatch的配置项即可,完整配置参考如下:

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File", "Serilog.Sinks.AwsCloudWatch" ],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      // 你原有的控制台输出配置
      { "Name": "Console" },
      // 你原有的文件输出配置
      {
        "Name": "File",
        "Args": {
          "path": "logs/log-.txt",
          "rollingInterval": "Day"
        }
      },
      // 新增的CloudWatch输出配置
      {
        "Name": "AwsCloudWatch",
        "Args": {
          "logGroupName": "你的CloudWatch日志组名称",
          "logStreamNamePrefix": "日志流前缀,可填项目环境标识,比如dev-api-",
          "region": "AWS区域编码,比如cn-north-1(北京区)、us-east-1(美东1区)",
          "accessKey": "你的AWS Access Key",
          "secretKey": "你的AWS Secret Key",
          "minimumLogEventLevel": "Information",
          "batchSizeLimit": 100,
          "queueSizeLimit": 10000,
          "period": "00:00:02"
        }
      }
    ]
  }
}

注意:生产环境不建议在配置文件中明文存储AWS密钥,如果你将服务部署在AWS EC2、ECS、Lambda等官方服务上,直接给对应实例绑定拥有CloudWatch日志写入权限的IAM角色即可,不需要配置accessKey和secretKey参数。

第三步:确认配置加载逻辑

确保你的Program.cs中Serilog初始化逻辑是从配置文件读取配置的,参考代码如下:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseSerilog((context, config) =>
        {
            config.ReadFrom.Configuration(context.Configuration);
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

只要你之前的文件、控制台日志输出正常,添加上述配置后日志就会自动同步写入CloudWatch。

常见问题排查

  • 日志未上报时,先检查AWS账号对应的密钥/角色是否拥有logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents三个权限
  • 确认配置中的区域和你AWS账户CloudWatch所在区域完全一致
  • 可临时将最低日志级别调整为Debug,查看Serilog自身的报错信息定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:24:04