Использование log4j2 с AWS Lambda - PullRequest
0 голосов
/ 08 апреля 2020

Я получаю следующую ошибку при попытке использовать AWS lambda с log4j2. Я следовал всем инструкциям, приведенным в https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-log4j2

ОШИБКА StatusLogger Не найден файл конфигурации log4j2. Использование конфигурации по умолчанию: регистрация только ошибок на консоли. Задайте системное свойство 'org. apache .logging.log4j.simplelog.StatusLogger.level' равным TRACE, чтобы показать внутреннюю запись журнала инициализации Log4j2.

Может кто-нибудь помочь с этим?

1 Ответ

2 голосов
/ 08 апреля 2020

Я могу заставить это работать нормально - давайте посмотрим, где вы настроены по-другому. Я использую OpenJDK 11 и Java 11 Lambda. Мой обработчик лямбды выглядит так:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LambdaHandler {
    private static final Logger logger = LogManager.getLogger(LambdaHandler.class);

    // your handler entry point may be different but that shouldn't matter
    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) {
    }
}

Зависимости в моем pom.xml: com.amazonaws aws -lambda- java -core 1.2.0

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-log4j2</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.13.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.13.0</version>
    </dependency>

    <dependency>
        <groupId>com.github.edwgiz</groupId>
        <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId>
        <version>2.8.1</version>
    </dependency>

и раздел build/plugins для плагина Shade:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <createDependencyReducedPom>false</createDependencyReducedPom>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <manifestEntries>
                            <Multi-Release>true</Multi-Release>
                        </manifestEntries>
                    </transformer>
                    <transformer
                            implementation="com.github.edwgiz.mavenShadePlugin.log4j2CacheTransformer.PluginsCacheFileTransformer">
                    </transformer>
                </transformers>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.github.edwgiz</groupId>
                    <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId>
                    <version>2.8.1</version>
                </dependency>
            </dependencies>
        </plugin>

Когда моя лямбда запускается, я получаю сообщение:

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.

Я гуглил это но пока не удалось это исправить. Однако, похоже, это ничего не ранит.

...