在AWS Lambda上使用Log4J2进行日志记录-找不到类

我正尝试使用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 Lambda上使用Log4J2进行日志记录-找不到类 的全部内容, 来源链接: utcz.com/qa/410195.html

回到顶部