Estoy tratando de usar el registro de Log4J2 como se describe aquí en los documentos de AWS:
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>Error Sin embargo, recibo el siguiente error cuando ejecuto la lambda: (eliminé las marcas de tiempo a continuación para mejorar la legibilidad)
ERROR Error processing element Lambda ([Appenders: null]): CLASS_NOT_FOUND ERROR Unable to locate appender "Lambda" for logger config "root" Intenté Me aseguré de que log4J libs y log4j-core , log4j-api , aws-lambda-java-log4j2 y aws-lamda-java-core estén todos en el paquete.
Yo también tuve este problema. Resulta que hay un error tipográfico en la documentación de ejemplo de AWS.
Los packages en la etiqueta <Configuration .. son incorrectos.
De acuerdo con los documentos de configuración del complemento log4j, el parámetro de packages es un paquete, no una clase.
Así que modifique su configuración log4j2.xml para que sea...
<?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>Espero que esto ayude. Salud