Dynamo DB를 채우기 위해 람다 함수를 사용하고 있습니다. 일부가 발생하면 예외를 알기 위해 cloudwatch에 이벤트 세부 정보를 기록해야합니다. 람다 함수에 대한 클라우드 워치 로그를 구성 할 수 있지만 원하지 않는 로깅으로 이어지는 다른 디버그 문을 보여줍니다. 거기에 구성 할 수있는 방법이 있습니다. 도움이 될 것입니다.Cloudwatch에서만 오류 만 기록해야합니다.
답변
좋아, 나는 당신의 질문을 오해했다고 생각합니다. 분명히 (귀하의 의견에서) 당신은 log4j를 사용하고 있습니다. Log4j의 기록 레벨을 설정하는 방법은 다음
logger = Logger.getRootLogger(); // or Logger.getLogger("com.foo");
logger.setLevel(Level.ERROR);
이없이 람다 표준 Log4j를 사용한다. 더 많은 람다 관련 질문은 소스 코드를 변경하지 않고 로깅을 제어하는 방법 일 수 있습니다. 현재 가장 좋은 대답은 람다 별칭을 사용하는 것입니다.이 별칭은 어색 할 것입니다. 그러나 곧 Lambda는 환경 변수를 함수 구성의 일부로 지원할 것이며이를 사용하면됩니다.
각 호출은 Lambda에서 START, END 및 REPORT의 세 로그 라인을 가져옵니다. 다른 모든 로그 라인은 고객 코드 (또는 고객 코드가 사용하는 모듈)에서 가져온 것이거나 사용자 코드에서 처리되지 않은 예외의 스택 추적이므로 사용자가 제어해야합니다.
그러나 log.error 문을 catch 블록에만 사용한 경우에도 모든 연결 문을 로깅 스트림에 인쇄합니다. catch 블록의 오류 만 표시하도록 구성하는 방법은 무엇입니까? 다른 모든 명령문이 인쇄되는 경우 해당 로그를 저장하는 것은 어렵고 디버그하기도 어렵습니다. –
코드에서 예외 처리 메커니즘을 사용해야합니다. 코드에서 오류가 발생하면 catch 블록을 실행해야하며 거기에서 stacktrace 메서드를 사용하여 오류를 추적 할 수 있습니다. 스택 추적 방법은 다른 언어로 다를 수 있습니다. Cloudwatch 로그의 경우 언어에 따라 간단한 콘솔 출력 방법을 사용할 수 있습니다.
고마워. 나를 위해 일했다. –