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

在aws lambda上使用Log4J2进行日志记录-未找到类

何灼光
2023-03-14

我正在尝试使用AWS文档中描述的Log4J2日志:

https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt-logging-using-log4j2.8

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
  <Appenders>
    <Lambda name="Lambda">
      <PatternLayout>
          <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
      </PatternLayout>
    </Lambda>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Lambda" />
    </Root>
  </Loggers>
</Configuration>

错误但是当运行lambda时,我得到了以下错误:(我删除了下面的时间戳以提高可读性)

ERROR Error processing element Lambda ([Appenders: null]): CLASS_NOT_FOUND
ERROR Unable to locate appender "Lambda" for logger config "root"

我尝试过确保log4J libs和log4J corelog4J apiaws-lambda-java-log4j2aws lamda java core都在包中。

共有1个答案

艾泰
2023-03-14

我也有这个问题。事实证明,AWS示例文档中存在一个打字错误。

中的

根据log4j插件配置文档,packages参数是一个包而不是一个类。

因此,修改您的log4j2。要进行的xml配置。。。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2">
  <Appenders>
    <Lambda name="Lambda">
      <PatternLayout>
          <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
      </PatternLayout>
    </Lambda>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Lambda" />
    </Root>
  </Loggers>
</Configuration>

希望这能有所帮助。干杯

 类似资料:
  • 问题内容: 我正尝试使用AWS文档中此处所述的Log4J2日志记录: https://docs.aws.amazon.com/lambda/latest/dg/java-logging.html#java-wt- logging-using-log4j2.8 错误 但是运行lambda时出现以下错误:(我删除了以下时间戳以提高可读性) 试过 我确信,log4j的库和,,并都在包中。 问题答案: 我

  • 编写了简单的POC来证明和测试Spring Boot和log4j2的兼容性。一旦成功,我将把它移动到真正的应用程序。 请参考下面的maven依赖关系(来自POC): 如果我不排除Spring的logback,也不添加boot-starter-log4j2,那么应用程序日志会打印到应用程序文件中,但Spring日志根本不会打印。我感觉到了依赖的问题。感谢任何帮助。

  • 我使用的是,我想配置将不同的内容异步记录到不同的日志文件中。 我创建了log4j2文件,但是仍然使用Spring Boot默认日志记录。如何切换日志记录?

  • 我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些

  • 我有一个Keycloak EAR模块,部署在Keycloak 11.0上。在我的EAR模块中,我希望使用带有SLF4J的log4j2日志库。我通过直接在pom中添加以下依赖项成功地完成了这一点:、&。 通过将设置为来排除Wildfly日志记录依赖项。在打包的EAR外部指定,并用系统属性引用。 现在问题来了。我还希望Keycloak使用log4j2,但我无法使其工作。Keycloak使用的是Jbos