0
駱駝2.17
我已經定義了一些路線,這路線包含類似的條目:
.to ("log:org.apache.camel?level=DEBUG")
我的logback配置包含:
<logger name="org.apache.camel" level="TRACE" />
上下文的定義開始:
<camel:camelContext id="someContext" ... trace="true">
當我開始駱駝,然後我看到駱駝正在進行,最後沒有任何錯誤報告只是關閉。這看起來像:
2016-10-04 13:40:56,146 [localhost-startStop-1] TRACE org.apache.camel.model.ProcessorDefinitionHelper - There are 6 properties on: From[direct:process]
2016-10-04 13:40:58,042 [localhost-startStop-1] DEBUG org.apache.camel.spring.SpringCamelContext - onApplicationEvent: org.springframework.context.event.ContextClosedEvent[source=Root WebApplicationContext: startup date [Tue Oct 04 13:37:25 CEST 2016]; root of context hierarchy]
2016-10-04 13:40:58,066 [localhost-startStop-1] INFO org.apache.camel.spring.SpringCamelContext - Apache Camel 2.17.3 (CamelContext: someContext) is shutting down
我也一樣:
onException(java.lang.Exception.class)
.handled(false)
.to("log:GeneralError?level=ERROR");
但是,這是更相關的交換處理,而不是啓動。
是否有任何通用的方法來檢查外面發生了什麼? 例如:
- 是否有任何類丟失和類加載器失敗?
- 或者是拋出的任何異常?
- 或某些連接失敗?
完整的路由定義:
final RouteDefinition kafkaRouteDefinition = from("kafka:{{kafka.broker.endpoints}}" +
"?topic={{kafka.topic.name}}" +
"&groupId=my_group" +
"&autoOffsetReset=earliest" +
"&consumersCount={{kafka.consumer.count}}");
LOG.info("Kafka route definition: " + kafkaRouteDefinition.toString());
kafkaRouteDefinition
.routeId(Constants.ROUTE_ID_PROCESS_KAFKA_MESSAGES)
.to("log:org.apache.camel?level=DEBUG")
.process(new RawMessageProcessor()).id(RawMessageProcessor.class.getSimpleName())
.to("log:org.apache.camel?level=DEBUG")
.unmarshal(inputMessageFormat).id("ConvertRawMessageToLogline")
.to("log:org.apache.camel?level=DEBUG")
.process(new LoglineMessageProcessor()).id(LoglineMessageProcessor.class.getSimpleName())
.to("log:org.apache.camel?level=DEBUG")
.to(Constants.CAMEL_PROCESS_ENDPOINT)
.to("log:org.apache.camel?level=DEBUG")
.multicast().stopOnException()
.to("log:org.apache.camel?level=DEBUG")
.to(Constants.CAMEL_STORE_ENDPOINT
, Constants.CAMEL_INDEX_ENDPOINT
)
.to("log:org.apache.camel?level=DEBUG")
.end();
我有更多的少了這一切。問題在於駱駝的冗長。這是吃例外或其他錯誤報告,甚至沒有寫入日誌。有時在某些TRACE級別的日誌中,我看到例如參數爲null左右。然後在其他日誌行中,我看到「關機」或「停止」或其他 - 通常完全不清楚。我期望至少在WARN級別看到具體的消息,例如「預期的類型/值是String got int,Camel會關閉」。有了這樣的報告,我可以看到原因和結果之間的聯繫。 –
用文件中的調試模式創建log4j.xml。你應該得到每一個步驟 – Ashish
@Aschish:我做到了,它沒有太多幫助。我還加入了路由生成器:'onException(java。lang.Exception.class).handled(false).to(「log:GeneralError?level = ERROR」);',但它沒有太大幫助。也許我錯了,但是我對Kafka Camel插件的代碼進行了代碼審查,我發現它的異常處理非常少。也許問題發展到更高的水平。 –