2

Dynamo DB를 채우기 위해 람다 함수를 사용하고 있습니다. 일부가 발생하면 예외를 알기 위해 cloudwatch에 이벤트 세부 정보를 기록해야합니다. 람다 함수에 대한 클라우드 워치 로그를 구성 할 수 있지만 원하지 않는 로깅으로 이어지는 다른 디버그 문을 보여줍니다. 거기에 구성 할 수있는 방법이 있습니다. 도움이 될 것입니다.Cloudwatch에서만 오류 만 기록해야합니다.

답변

0

좋아, 나는 당신의 질문을 오해했다고 생각합니다. 분명히 (귀하의 의견에서) 당신은 log4j를 사용하고 있습니다. Log4j의 기록 레벨을 설정하는 방법은 다음

logger = Logger.getRootLogger(); // or Logger.getLogger("com.foo"); 
logger.setLevel(Level.ERROR); 

이없이 람다 표준 Log4j를 사용한다. 더 많은 람다 관련 질문은 소스 코드를 변경하지 않고 로깅을 제어하는 ​​방법 일 수 있습니다. 현재 가장 좋은 대답은 람다 별칭을 사용하는 것입니다.이 별칭은 어색 할 것입니다. 그러나 곧 Lambda는 환경 변수를 함수 구성의 일부로 지원할 것이며이를 사용하면됩니다.

+1

고마워. 나를 위해 일했다. –

1

각 호출은 Lambda에서 START, END 및 REPORT의 세 로그 라인을 가져옵니다. 다른 모든 로그 라인은 고객 코드 (또는 고객 코드가 사용하는 모듈)에서 가져온 것이거나 사용자 코드에서 처리되지 않은 예외의 스택 추적이므로 사용자가 제어해야합니다.

+0

그러나 log.error 문을 catch 블록에만 사용한 경우에도 모든 연결 문을 로깅 스트림에 인쇄합니다. catch 블록의 오류 만 표시하도록 구성하는 방법은 무엇입니까? 다른 모든 명령문이 인쇄되는 경우 해당 로그를 저장하는 것은 어렵고 디버그하기도 어렵습니다. –

0

코드에서 예외 처리 메커니즘을 사용해야합니다. 코드에서 오류가 발생하면 catch 블록을 실행해야하며 거기에서 stacktrace 메서드를 사용하여 오류를 추적 할 수 있습니다. 스택 추적 방법은 다른 언어로 다를 수 있습니다. Cloudwatch 로그의 경우 언어에 따라 간단한 콘솔 출력 방법을 사용할 수 있습니다.