【发布时间】:2016-12-15 08:42:30
【问题描述】:
我在 aws ec2 上运行了 Spring MVC 应用程序。现在我决定迁移到 aws elastic beanstalk 并在迁移当前应用程序之前对其进行探索。关于持久性存储和应用程序日志,我几乎没有什么问题。
我的问题可能很幼稚,但请多多包涵:)
我正在使用 log4j 进行应用程序日志记录。 Log4j 将日志附加到硬盘驱动器的指定位置。由于弹性 beanstalk 没有持久存储(一旦实例终止,存储将被删除)并且实例可能会根据加载规则增长/缩小。
所以我被困在下面
- 如何配置 log4j 以附加日志。
- 如果我坚持当前的 log4j 实现,我将如何确保在启动实例时创建目录结构(我假设应用程序中没有代码更改)
- 如果我使用 log4j 中的 socketappender,那么我将如何区分来自不同实例的文件。
我一直在阅读描述使用 .ebextensions 目录的文章。我尝试使用 AWS 提供的基本 .conf 文件将日志跟踪到 S3,但我的应用程序日志没有成功。
在 .ebextensions
下创建应用程序目录位置的示例脚本commands:
01_create_dir:
test: test ! -d "${DIR}"
command: mkdir "${DIR}"
参考链接:
- https://aws.amazon.com/blogs/aws/cloudwatch-log-service/
- http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
- http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-configuration-methods-during.html#configuration-options-during-console-ebextensions
EBS 控制台显示用于 URL 访问的 apache 日志。
我想知道是否有 AWS 提供的现成解决方案我没有搜索到。
【问题讨论】:
-
我建议您做另一件事,忘记文件日志并使用 Cloudwatch 附加程序。因此,您可以将所有日志汇总到更易于使用的 Cloudwatch 日志中。例如,您可以使用它:github.com/Virtual-Instruments/cloudwatch-log4j-appender
-
嗨@Harshawardhan,您是否为您的问题获得了生产级解决方案?我也有类似的情况。
标签: java amazon-web-services logging amazon-elastic-beanstalk