我正在尝试使用log4j2 Loggers登录aws lambda函数,但不幸的是找不到log4j2.xml,我只是在CloudTrail日志中看到了标准错误消息
“ ERROR StatusLogger未找到log4j2配置文件。使用默认值 配置:仅将错误记录到控制台。”
如果我在本地运行该应用程序(在main方法中调用object方法),则一切正常。我遵循了AWS的官方文档,但没有帮助。
可以部署的虚拟项目在这里:https://github.com/dimarzio/testlambdalog
唯一的不同是-我正在使用shadowJar插件... 有趣的是-当我查看* all.jar时,log4j2.xml直接放置在* .jar
的根目录中答案 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存储库。