当前位置: 首页 > 面试题库 >

在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的库和log4j-corelog4j-apiaws-lambda-java-log4j2aws- lamda-java-core都在包中。


问题答案:

我也有这个问题。原来,AWS示例文档中存在一个错字错误。

packages<Configuration ..标签是错误的。

根据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 libs和,,和都在包中。

  • 编写了简单的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。这些

  • 互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https: