5.7. 메시지 내역

5.7.1. 개요

메시지 기록 패턴을 사용하면 느슨하게 연결된 시스템에서 메시지 흐름을 분석하고 디버깅할 수 있습니다. 메시지 기록을 메시지에 연결하면 메시지가 원본 이후 전달된 모든 애플리케이션 목록이 표시됩니다.

Apache Camel에서는 getTracedRouteNodes 방법을 사용하여 추적기를 사용하거나 UnitOfWork의 Java API를 사용하여 메시지 흐름을 추적할 수 있습니다.

5.7.2. 로그의 문자 길이 제한

로깅 메커니즘을 사용하여 Apache Camel을 실행하면 메시지 및 해당 콘텐츠를 수시로 기록할 수 있습니다.

일부 메시지에는 매우 큰 페이로드가 포함될 수 있습니다. 기본적으로 Apache Camel은 로그 메시지를 지우고 처음 1000자만 표시합니다. 예를 들어 다음 로그가 다음과 같이 표시됩니다.

[DEBUG ProducerCache  - >>>> Endpoint[direct:start] Exchange[Message: 01234567890123456789... [Body clipped after 20 characters, total length is 1000]

Apache Camel이 로그의 본문을 클리핑할 때 제한을 사용자 지정할 수 있습니다. 0 또는 음수 값(예: -1)을 설정할 수도 있습니다. 즉 메시지 본문이 기록되지 않음을 의미합니다.

Java DSL을 사용하여 제한 사용자 정의

Java DSL을 사용하여 Camel 속성의 제한을 설정할 수 있습니다. 예를 들면 다음과 같습니다.

 context.getProperties().put(Exchange.LOG_DEBUG_BODY_MAX_CHARS, "500");
Spring DSL을 사용하여 제한 사용자 정의

Spring DSL을 사용하여 Camel 속성 제한을 설정할 수 있습니다. 예를 들면 다음과 같습니다.

<camelContext>
    <properties>
        <property key="CamelLogDebugBodyMaxChars" value="500"/>
   </properties>
</camelContext>