12.2. LogEIP
12.2.1. 개요
Apache Camel은 경로에 로깅을 수행하는 여러 가지 방법을 제공합니다.
-
로그
DSL 명령 사용. - 메시지 콘텐츠를 기록할 수 있는 로그 구성 요소를 사용합니다.
- 메시지 흐름을 추적하는 추적기를 사용합니다.
-
Processor
또는 Cryostat 엔드포인트를 사용하여 Java 로그인을 수행합니다.
12.2.2. Java DSL 예
Apache Camel 2.2 이므로 log
DSL 명령을 사용하여 단순 표현식 언어를 사용하여 런타임에 로그 메시지를 구성할 수 있습니다. 예를 들어 다음과 같이 경로 내에 로그 메시지를 생성할 수 있습니다.
from("direct:start").log("Processing ${id}").to("bean:foo");
이 경로는 런타임에 문자열
형식 메시지를 생성합니다. 경로 ID를 로그 이름으로 사용하여 INFO
수준에 로그 메시지가 기록됩니다. 기본적으로 경로의 이름은 route-1,
등입니다. 그러나 DSL 명령 route
-2routeId("myCoolRoute")
를 사용하여 사용자 지정 경로 ID를 지정할 수 있습니다.
또한 로그 DSL은 로깅 수준 및 로그 이름을 명시적으로 설정할 수 있는 변형을 제공합니다. 예를 들어 로깅 수준을 LoggingLevel.DEBUG
로 명시적으로 설정하려면 다음과 같이 로그 DSL을 호출할 수 있습니다.
로그 DSL에는 로깅 수준 및/또는 이름을 설정하는 오버로드된 방법이 있습니다.
from("direct:start").log(LoggingLevel.DEBUG, "Processing ${id}").to("bean:foo");
로그 이름을 fileRoute
로 설정하려면 다음과 같이 로그 DSL을 호출할 수 있습니다.
from("file://target/files").log(LoggingLevel.DEBUG, "fileRoute", "Processing file ${file:name}").to("bean:foo");
12.2.3. XML DSL 예
XML DSL에서 로그 DSL은 로그
요소로 표시되고 메시지 특성을 다음과 같이 단순 표현식으로 설정하여 로그 메시지가
지정됩니다.
<route id="foo"> <from uri="direct:foo"/> <log message="Got ${body}"/> <to uri="mock:foo"/> </route>
log
요소는 메시지
,loggingLevel
및 logName
특성을 지원합니다. 예를 들면 다음과 같습니다.
<route id="baz"> <from uri="direct:baz"/> <log message="Me Got ${body}" loggingLevel="FATAL" logName="cool"/> <to uri="mock:baz"/> </route>
12.2.4. 글로벌 로그 이름
경로 ID는 기본 로그 이름으로 사용됩니다. Apache Camel 2.17 부터 logname 매개변수를 구성하여 로그 이름을 변경할 수 있습니다.
Java DSL: 다음 예제를 기반으로 로그 이름을 구성합니다.
CamelContext context = ... context.getProperties().put(Exchange.LOG_EIP_NAME, "com.foo.myapp");
XML에서 다음과 같은 방식으로 로그 이름을 구성합니다.
<camelContext ...> <properties> <property key="CamelLogEipName" value="com.foo.myapp"/> </properties>
로그가 두 개 이상 있고 모든 로그에 동일한 로그 이름을 사용하려면 각 로그에 구성을 추가해야 합니다.