Изменить уровень Log4j с помощью переменных среды в AWS Lambda (Java) - PullRequest
0 голосов
/ 14 мая 2018

У меня AWS Lambdas, закодированный с использованием Java8.Я использую Log4j1.2.17 для ведения журнала потребностей:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>${log4j.version}</version>
</dependency>

Конфигурация ведения журнала указывается с помощью файла log4.properties следующим образом:

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Как вы можете видеть в настоящее время уровень журналаустановите в «инфо».Я хочу изменить уровень журнала, используя переменные среды AWS Lambda, чтобы при необходимости отладки установить некоторую переменную среды Lambda, и она должна быть отражена в функции Lambda, чтобы она начала регистрироваться в операторах Debug.Любая помощь будет оценена.Спасибо

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Если вы можете перейти на Log4j2 (который в настоящее время поддерживается AWS Lambda, вы можете найти подробную информацию о AWS GitHub ), есть функция «Поиск», которая позволяет использовать переменные среды в файле конфигурации Log4j2: http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup

Таким образом, вы можете использовать что-то подобное в вашем файле конфигурации: "${env:VAR_NAME:-info}", где -info будет уровнем ведения журнала по умолчанию.

0 голосов
/ 15 мая 2018

Вы можете использовать Apache MDC (org.apache.log4j.MDC) для этой цели.Поместите следующую строку кода в начало вашего приложения / программы.

MDC.put("ENV_VARIABLE_NAME", value);
...