当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda不识别log4j2。xml配置文件

江宏放
2023-03-14

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

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

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

可以部署的虚拟项目如下:https://github.com/dimarzio/testlambdalog

唯一不同的是,我正在使用shadowJar插件。。。有趣的是,当我看到所有。震击log4j2。xml直接放在*的根目录中。罐子

共有1个答案

左博学
2023-03-14

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

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

关键是buildZip gradle任务。

因此,在AWS Lambda资源调配中使用shadowJar插件时必须谨慎。一般来说,它可以正常工作,但可能会遇到问题。我已经相应地更新了Github回购协议。

 类似资料:
  • 我正在尝试在我的Geb框架中设置log4j2。就我的一生而言,我不知道如何把这些结合起来。我有一个log4j2。使用记录器“Selenium”设置xml(不是log4j.xml)文件。在DefaultPage中,我尝试从配置文件。 log4j2.xml DefaultPage.groovy 测试执行并将输出写入STDERR,这是预期的,因为我有记录器。错误但是,它不支持日期的格式。此外,我还使用其

  • 我想使用新的log4j2-Java日志框架。一切正常,但我从一小时后就尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认包中。 将log4j2.xml文件移动到项目中的任意位置 将log4j2.xml文件命名为log4j.xml 在项目中创建一个文件夹,将log4j2.xml文件放

  • 最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。

  • 问题内容: 我想使用新的Log4J 2-Java Logging Framework。一切正常,但是一个小时以来,我尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认软件包中。 将log4j2.xml文件移动到项目中的任何位置 将log4j2.xml文件命名为“ log4j.xml

  • 问题内容: 我已将应用程序迁移到log4j 2,并通过log4j2.xml对其进行了配置 但是,我正在使用的某些库取决于log4j1。如果我使用以下命令运行该应用程序: log4j 1抱怨找不到配置文件。我正在使用log4j 2,log4j-1.2-api-2.0-rc1.jar提供的log4j 1.x桥。是否可以使用单个log4j2.xml进行配置? 我尝试过的替代方法是同时配置log4j和lo

  • 我已经将应用程序迁移到Log4J2,并通过log4j2.xml对其进行了配置 但是,我使用的一些库依赖于log4j1。如果我使用以下方式运行应用程序: 我尝试的另一种方法是将log4j和log4j2配置在一起: 我担心的是日志配置文件和输出的碎片化。我还担心log4j.xml和log4j2.xml之间可能存在的冲突。例如,logfile Error.log被配置为使用log4j1中的FileApp