Docker,Tomee,日志记录,STDOUT,AWS

杰伊·布兰查德(Jay Blanchard)

首先,我说我不是Tomee / TomCat专家。

我有一个应用程序(.war)在AWS的ECS / Fargate上基于Tomee的Docker容器中运行。我试图让Tomee将所有日志发送到,STDOUT以便将来自应用程序的日志发送到AWS中的CloudWatch。我已经尝试过此问题的建议/答案但是即使在本地测试,我仍然看不到应用程序日志:

docker logs -f myapp

这是带有添加的logging.properties文件 java.util.logging.ConsoleHandler

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, org.apache.tomee.jul.formatter.AsyncConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, org.apache.tomee.jul.formatter.AsyncConsoleHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

org.apache.tomee.jul.formatter.AsyncConsoleHandler.level = FINE
org.apache.tomee.jul.formatter.AsyncConsoleHandler.formatter = org.apache.juli.OneLineFormatter
org.apache.tomee.jul.formatter.AsyncConsoleHandler.encoding = UTF-8


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

我已经添加了一个环境变量,如/usr/local/tomee/bin/

#!/bin/bash
CATALINA_OUT=/dev/stdout

发送到的所有日志都会STDOUT自动发送到AWS Cloudwatch(我可以在那看到Catalina日志中的信息),但访问/错误日志却没有。

我在这里错过了什么吗?还是有一种更简单的方法来确保在CloudWatch中可以看到应用程序的日志?

杰伊·布兰查德(Jay Blanchard)

经过大量研究,我发现在server.xml中使用以下语句将使用以下命令将日志发送到STDOUT AccessLogValve

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/dev/stdout"
   prefix="" suffix="" rotatable="false"
   pattern="%h %l %u %t &quot;%r&quot; %s %b" />

要么

<Valve className="[...].AccessLogValve" directory="/dev"
    prefix="stdout" suffix="" fileDateFormat=""
    pattern="%h %l %u %t &quot;%r&quot; %s %b"
/>

取决于Tomcat / Tomee的版本,这两种方法都能很好地工作,而无需将实际日志软链接到 /dev/stdout

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony将日志记录到Docker容器内的stdout

来自分类Dev

Python日志记录:禁用输出到stdout

来自分类Dev

docker:配置日志记录选项

来自分类Dev

stdout记录日志,stderr记录日志并进行控制台

来自分类Dev

配置AWS API Gateway的日志记录

来自分类Dev

如何在python日志记录中过滤stdout

来自分类Dev

EMR Spark Streaming Job Stdout日志记录消失

来自分类Dev

Docker 日志记录的最佳实践是什么?

来自分类Dev

Ruby Flow框架的AWS SWF API调用日志记录

来自分类Dev

使用Python(django)的AWS Elastic Beanstalk日志记录

来自分类Dev

AWS PHP SDK v3中的响应日志记录

来自分类Dev

从 Java 使用 AWS Lambda 进行日志记录似乎被破坏了

来自分类Dev

如何为Docker注册日志记录驱动程序?

来自分类Dev

Docker组成全局级别的日志记录

来自分类Dev

使用Docker保护日志记录驱动程序?

来自分类Dev

如何启用 Docker 守护程序的“调试”日志记录?(Ubuntu 16.04)

来自分类Dev

如果先添加处理程序,为什么Python日志记录仅隐藏stdout?

来自分类Dev

Bash:将来自多个xargs并行进程的stdout记录到单独的日志文件中

来自分类Dev

从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

来自分类Dev

如何在Rails中拆分日志记录?(对于stdout某些级别,对于stderr某些级别)

来自分类Dev

将stderr和stdout记录到日志文件并处理bash脚本中的错误

来自分类Dev

将色度日志添加到STDOUT和文件记录

来自分类Dev

如何为Elastic Beanstalk部署检索正常的stdout / stderr日志记录

来自分类Dev

分别记录stdout和stderr时截断的输出日志文件

来自分类Dev

从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

来自分类Dev

如果首先添加处理程序,为什么Python日志记录仅隐藏stdout?

来自分类Dev

将stdout发送到/ dev / null时,Python日志记录类不起作用

来自分类Dev

用于日志记录的上下文管理器等效于contextmanager => yield stdout

来自分类Dev

具有启用日志记录功能的 cloudformation 的 AWS DMS 需要一个日志组

Related 相关文章

  1. 1

    Symfony将日志记录到Docker容器内的stdout

  2. 2

    Python日志记录:禁用输出到stdout

  3. 3

    docker:配置日志记录选项

  4. 4

    stdout记录日志,stderr记录日志并进行控制台

  5. 5

    配置AWS API Gateway的日志记录

  6. 6

    如何在python日志记录中过滤stdout

  7. 7

    EMR Spark Streaming Job Stdout日志记录消失

  8. 8

    Docker 日志记录的最佳实践是什么?

  9. 9

    Ruby Flow框架的AWS SWF API调用日志记录

  10. 10

    使用Python(django)的AWS Elastic Beanstalk日志记录

  11. 11

    AWS PHP SDK v3中的响应日志记录

  12. 12

    从 Java 使用 AWS Lambda 进行日志记录似乎被破坏了

  13. 13

    如何为Docker注册日志记录驱动程序?

  14. 14

    Docker组成全局级别的日志记录

  15. 15

    使用Docker保护日志记录驱动程序?

  16. 16

    如何启用 Docker 守护程序的“调试”日志记录?(Ubuntu 16.04)

  17. 17

    如果先添加处理程序,为什么Python日志记录仅隐藏stdout?

  18. 18

    Bash:将来自多个xargs并行进程的stdout记录到单独的日志文件中

  19. 19

    从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

  20. 20

    如何在Rails中拆分日志记录?(对于stdout某些级别,对于stderr某些级别)

  21. 21

    将stderr和stdout记录到日志文件并处理bash脚本中的错误

  22. 22

    将色度日志添加到STDOUT和文件记录

  23. 23

    如何为Elastic Beanstalk部署检索正常的stdout / stderr日志记录

  24. 24

    分别记录stdout和stderr时截断的输出日志文件

  25. 25

    从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

  26. 26

    如果首先添加处理程序,为什么Python日志记录仅隐藏stdout?

  27. 27

    将stdout发送到/ dev / null时,Python日志记录类不起作用

  28. 28

    用于日志记录的上下文管理器等效于contextmanager => yield stdout

  29. 29

    具有启用日志记录功能的 cloudformation 的 AWS DMS 需要一个日志组

热门标签

归档