AWS Lambda无法识别log4j2.xml配置文件

时间:2019-04-02 10:51:11

标签: java logging aws-lambda log4j2

我正在尝试使用log4j2 Loggers登录aws lambda函数,但不幸的是找不到log4j2.xml,我只是在CloudTrail日志中看到了标准错误消息

  

“ ERROR StatusLogger未找到log4j2配置文件。使用默认值   配置:仅将错误记录到控制台。”

如果我在本地运行该应用程序(在main方法中调用object方法),则一切正常。我遵循了AWS的官方文档,但没有帮助。

可以部署的虚拟项目在这里:https://github.com/dimarzio/testlambdalog

唯一的不同是-我正在使用shadowJar插件... 有趣的是-当我查看* all.jar时,log4j2.xml直接放置在* .jar

的根目录中

1 个答案:

答案 0 :(得分:0)

我找到了问题的根源,实际上是shadowJar插件! Lambda执行环境无法完全识别将在可执行jar归档文件内部生成的文件和文件夹结构。

要使其工作(如果您使用的是gradle),请阅读以下文档站点:https://docs.aws.amazon.com/lambda/latest/dg/create-deployment-pkg-zip-java.html

关键是buildZip gradle任务。

因此,必须谨慎对待使用ShadowJar插件进行AWS Lambda调配。通常情况下可以正常运行,但是我可能会遇到相应的问题,因此我已经相应地更新了Github存储库。