我的容器化 tomcat Web 应用程序看不到配置的 log4j2.xml



我的web应用程序与aws ec2实例上创建的log4j2.xml文件配合良好。但现在我把它装进集装箱,它在ECS Fargate中运行。我可以在CloudWatch中看到catalina日志,但不能看到我在log4j2.xml文件中配置的特定于应用程序的日志。log4j2.xml位于像/var/webapp/conf这样的特定路径中,我将该路径作为shared.loader=/var/webapp/conf放在catalina.properties中。此外,我在catalina日志中看到这个错误:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization logging.

注意:我不想更改tomcat默认日志记录。我只是想把我的应用程序日志也发送到控制台,这样我就可以在一个CloudWatch日志流中看到所有日志。

您的Fargate任务无法识别log4j日志驱动程序的配置。原因是,对于Fargate任务,我们只能通过任务定义设置一些特定的日志驱动程序。

Fargate的Amazon ECS任务定义支持日志配置的awslogs、splunk、firelens和fluentd日志驱动程序。

  • https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html

我建议使用CloudWatch日志驱动程序:

  • https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html

最新更新