【问题标题】:Sending log from springboot application to cloudwatch in fargate instance将日志从 Spring Boot 应用程序发送到 Fargate 实例中的 CloudWatch
【发布时间】:2020-01-09 12:51:45
【问题描述】:
我们需要在 log4j2.xml 中为 cloudwatch 配置 appender。
我们正在使用 ECS 集群和 Fargate 实例。
用例是我们需要根据业务日志类型将来自同一应用程序的不同日志组中的日志分类。有办法使用多个记录器将日志发送到不同的文件,但我们如何为云手表做同样的事情。
有一些为此编写的库,但我们是否有一些 AWS cloudwatch 日志附加器,可以在 log4j2.xml 中使用。请帮忙
【问题讨论】:
标签:
spring-boot
log4j2
amazon-cloudwatch
aws-fargate
【解决方案1】:
我们默认使用 Spring Boot 日志记录并将输出发送到控制台。这也适用于非 Spring Boot。然后使用 CloudFormation 在TaskDefinition 和LogGroups 中配置日志。您可以在控制台中使用 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