首页 > 解决方案 > 将日志从springboot应用程序发送到fargate实例中的cloudwatch

问题描述

我们需要在 log4j2.xml 中为 cloudwatch 配置 appender。
我们正在使用 ECS 集群和 Fargate 实例。
用例是我们需要根据业务日志类型将来自同一应用程序的不同日志组中的日志分类。有办法使用多个记录器将日志发送到不同的文件,但我们如何为云手表做同样的事情。
有一些为此编写的库,但我们是否有一些 AWS cloudwatch 日志附加器,可以在 log4j2.xml 中使用。请帮忙

标签: spring-bootlog4j2amazon-cloudwatchaws-fargate

解决方案


我们默认使用 Spring Boot 日志记录并将输出发送到控制台。这也适用于非 Spring Boot。然后使用 CloudFormation 在TaskDefinitionLogGroups 中配置日志。您可以在控制台中执行类似操作,TaskDefinition并单独创建 CloudWatch 日志。

Resources:
  .
  :
  TaskDefinition:
    .
    :
    Properties:
      .
      :
      ContainerDefinitions:
       - Name:
         Image:
         .
         :
         LogConfiguration:
           LogDriver: awslogs
           Options:
             awslogs-region: !Ref 'AWS::Region'
             awslogs-group: !Ref LogGroup
             awslogs-stream-prefix: ecs

  LogGroup:
    Type: 'AWS::Logs::LogGroup'
    Properties:
      LogGroupName: !Sub ${ServiceName}
  AccessLogGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: !Sub ${ServiceName}-api-access-logs
      RetentionInDays: 7

推荐阅读