<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
로깅은 문제를 디버깅하는 효율적인 방법 중 하나입니다. API에 대한 정보 헤더, 양식 매개변수, 쿼리 매개변수, 동적 변수 등의 요청을 모두 로깅할 수 있습니다. 나중에 참고하시기 바랍니다. 정보는 메시지 프로세서 (Private Cloud용 Apigee Edge만 해당)에 로컬로 로깅할 수 있습니다. 서드 파티 서버에 전송할 수 있습니다.
안티패턴
아래 코드에서는 JavaScript 정책의 httpClient
객체를 사용해
Sumo Logic 서버입니다. 즉, 로깅 프로세스가 실제로 실행되는 동안
요청/응답 처리입니다 이 방법은 처리 시간이 늘어나기 때문에 오히려 역효과적입니다.
전체 지연 시간이 증가합니다
LogData_JS:
<!-- /antipatterns/examples/1-4.xml --> <Javascript async="false" continueOnError="false" enabled="true" timelimit="2000" name="LogData_JS"> <DisplayName>LogData_JS</DisplayName> <ResourceURL>jsc://LogData.js</ResourceURL> </Javascript>
LogData.js:
<!-- /antipatterns/examples/1-5.xml --> var sumoLogicURL = "..."; httpClient.send(sumoLogicURL); waitForComplete();
여기서 원인은 waitForComplete()
호출이며 호출자의
로깅 프로세스가 완료될 때까지
작업을 실행해야 합니다 유효한 패턴은 이 작업을 비동기식으로
할 수 있습니다.
영향
- JavaScript 정책을 통해 로깅 코드를 실행하면 API 지연 시간이 늘어납니다. 합니다.
- 동시 요청은 메시지 프로세서의 리소스에 부담을 주기 때문에 결과적으로 다른 요청 처리에 부정적인 영향을 미칩니다.
권장사항
- MessageLogging 정책을 사용하여 로그 서버 또는 서드 파티 로그로 데이터를 전송/기록합니다. 고객 관리 서비스에 대해 알아봅니다.
- 메시지 로깅 정책의 가장 큰 장점은 클라이언트 흐름: 응답이 요청하는 클라이언트 앱으로 다시 전송된 후에 실행됩니다.
- Post Client 흐름에 이 정책을 정의하면 로깅 활동과 요청/응답 처리를 통해 지연 시간을 피할 수 있습니다.
- 특정 요구 사항이나 JavaScript를 통해 로깅해야 하는 이유가 있는 경우
위에서 언급한 클라이언트 흐름 옵션)이 있는 경우 비동기식으로 실행해야 합니다. 즉,
httpClient
객체를 사용하는 경우 JavaScript가waitForComplete
를 구현하지 않음