我在 AWS 上运行 Lamba,并使用 slf4j 进行日志记录
项目要求的一部分是可以在运行时使用环境变量设置日志级别,但我不确定这是否可能
我正在使用以下代码,但将 UI 中的环境变量“LOG_LEVEL”更改为“DEBUG”对添加到 CloudWatch 日志中的内容没有影响。这可能吗?
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyLambdaHandler implements RequestHandler<Integer, String> {
private static final Logger LOGGER = LoggerFactory.getLogger(MyLambdaHandler.class);
static {
org.apache.log4j.Logger rootLogger = LogManager.getRootLogger();
String logLevel = (System.getenv("LOG_LEVEL") != null) ? System.getenv("LOG_LEVEL") : "INFO";
rootLogger.setLevel(Level.toLevel(logLevel));
}
public String myHandler(int myCount, Context context) {
LOGGER.debug("Entering myHandler lambda handler";
LOGGER.info("Handling myCount {}", myCount);
int returnValue = myCount * 2;
LOGGER.debug("MyHandler return value {}", returnValue);
return returnValue;
}
}