使用AWS Lambda(java)中的环境变量更改Log4j级别

时间:2018-05-14 10:56:27

标签: java log4j environment-variables aws-lambda runtime

我使用Java8编码AWS Lambdas。我正在使用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

如您所见,目前日志级别设置为&#34; info&#34;。我想使用AWS Lambda环境变量更改日志级别,这样如果需要Debug,请设置一些Lambda环境变量,它应该反映在Lambda函数中,以便它开始登录Debug语句。任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:3)

如果您可以迁移到Log4j2(AWS Lambda当前支持,可以在AWS GitHub上找到详细信息),则可以使用“查找”功能来使用Log4j2配置文件中的环境变量:{{ 3}}

因此,您可以在配置文件"${env:VAR_NAME:-info}"中使用类似的内容,其中-info是默认的日志记录级别。

答案 1 :(得分:-1)

您可以将Apache MDC(org.apache.log4j.MDC)用于此目的。将以下代码行放在应用程序/程序的开头。

MDC.put("ENV_VARIABLE_NAME", value);