使用aws-lambda-java-log4j2记录log4j2的AWS Lambda处理程序异常

时间:2019-10-07 18:49:45

标签: aws-lambda log4j2

我在Java lambda中使用aws-lambda-java-log4j2的官方建议,here。我注意到未捕获的异常未使用根记录器记录。例如,此lambda使用log4j2记录“处理程序”,但未引发异常:

private static final logger = LogManager.getLogger();
public void handler() {
  log.info("handler");
  throw new RuntimeException("error")
}

用于调用此功能的日志包括log4j2信息消息,但是该异常是明文记录的,没有requestid,timestamp或ERROR标记。

2019-10-07 11:39:02 43db1f36-0570-4b58-adc6-5c92ea62a862 INFO Example - handler
java.lang.RuntimeException: error
    at Test.main(Test.java:3)

很难在日志中查找异常,因为您无法grep输入请求ID或ERROR

在lambda中是否有使用log4j2根记录器发出日志的通用模式?

我不想用try-catch-log-rethrow包装处理程序。

try {
  ...
} catch (Throwable t) {
  log.fatal(t);
  throw t;
}

0 个答案:

没有答案