应用程序记录弹性豆茎

时间:2016-08-09 10:36:52

标签: java amazon-web-services logging elastic-beanstalk

我在aws ec2上运行了Spring MVC应用程序。现在我决定转移到aws弹性beanstalk,然后在迁移当前应用程序之前进行探索。我对持久存储和应用程序日志记录的问题很少。

我的问题可能很幼稚,但请耐心等待:)

我正在使用log4j进行应用程序日志记录。 Log4j将日志附加到硬盘驱动器上的指定位置。由于弹性beanstalk没有持久存储(一旦实例终止,存储将被删除),实例可能会根据加载规则增长/缩小。

所以我被困在以下

  1. 如何配置log4j以附加日志。
  2. 如果我坚持当前的log4j实现,我将如何确保在启动实例时创建目录结构(我假设应用程序中没有代码更改)
  3. 如果我从log4j开始使用socketappender,那么我如何区分不同实例的文件。
  4. 我一直在阅读描述使用 .ebextensions 目录的文章。我尝试使用AWS提供的基本.conf文件将日志记录到S3,但我的应用程序日志没有成功。

    用于在 .ebextensions

    下创建应用程序目录位置的示例脚本
    commands:
      01_create_dir:
        test: test ! -d "${DIR}"
        command: mkdir "${DIR}"
    

    推荐链接:

    EBS控制台显示用于URL访问的apache日志。

    我想知道AWS是否已提供任何现成的解决方案,但我无法搜索。

1 个答案:

答案 0 :(得分:1)

来自http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html

  

来自进程的标准输出和错误流以a开头   Procfile以在进程命名的日志文件中捕获并存储   在/ var / log中。例如,前面示例中的Web进程   为stdout和。生成名为web-1.log和web-1.error.log的日志   stderr,分别。

基于此,您所要做的就是确保log4j / logback输出您想要stdout的日志,即dd/mm/yyyy。使用Spring Boot,这是默认行为。