2014-02-28 42 views
0

我正在運行部署在ActiveMQ 5.9.0內部的一些Camel 2.12.2路由。 ActiveMQ log4j按預期工作,但在ActiveMQ中部署時,我無法爲我的駱駝應用程序獲取日誌。我的駱駝log4j.properties看起來是這樣的:部署在ActiveMQ內部的駱駝log4j配置

# 
# The logging properties used 
# 
log4j.rootLogger=INFO, console, logger 

# uncomment the following line to turn on Camel debugging 
#log4j.logger.org.apache.camel=DEBUG 

# Console appender 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%5p | %m%n 
log4j.appender.console.threshold=INFO 

# File appender 
log4j.appender.logger=org.apache.log4j.RollingFileAppender 
log4j.appender.logger.file=camel.log 
log4j.appender.logger.maxFileSize=1024KB 
log4j.appender.logger.maxBackupIndex=5 
log4j.appender.logger.append=true 
log4j.appender.logger.layout=org.apache.log4j.PatternLayout 
log4j.appender.logger.layout.ConversionPattern=%d | %-5p | %m | %c | %t%n 

我的駱駝項目使用JavaDSL與SpringRouteBuilders和運行使用Maven插件駱駝的申請,並

maven camel:run 

的camel.log文件運行時按預期生產。

但是,打包駱駝路由並將jar移動到ActiveMQ時,不再創建日誌文件。我已經檢查了slf4j,log4j和slf4j-log4j的jar,並且ActiveMQ中的版本與我的pom.xml中的版本相同。

任何關於我在這裏失蹤的線索?

編輯:只是爲了澄清我在這裏之後。 由於我的駱駝路由出現問題,我在ActiveMQ關閉的多個場合遇到了一些問題,但是我看不到activemq日誌中有任何異常,這使得調試非常耗時。今天我遇到了這樣的問題,並且意識到雖然日誌中還沒有出現任何錯誤,但我只是在做maven駱駝時得到了一個堆棧跟蹤:運行在我的項目上。一個簡單的例子(實際上只是一個例子,我知道爲什麼發生這種情況,但我想在ActiveMQ的運行藏漢當登錄!)

INFO | Apache Camel 2.12.2 (CamelContext: camel-1) is starting 
INFO | StreamCaching is enabled on CamelContext: camel-1 
INFO | JMX is enabled 
INFO | Using EntityManagerFactory configured: [email protected]90 
INFO | Using TransactionManager found in registry with id [transactionTemplate] [email protected] 
INFO | Apache Camel 2.12.2 (CamelContext: camel-1) is shutting down 
INFO | Apache Camel 2.12.2 (CamelContext: camel-1) uptime 0.477 seconds 
INFO | Apache Camel 2.12.2 (CamelContext: camel-1) is shutdown in 0.010 seconds 

當部署在ActiveMQ中,這是最後一行,我從駱駝看到

但運行Maven駱駝時:跑,我也看到這一點:

INFO | Apache Camel 2.12.2 stopping 
[ERROR] ************************************* 
[ERROR] Error occurred while running main from: org.apache.camel.spring.Main 
[ERROR] 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:486) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToStartRouteException: Failed to start route XPriceChangeToRibRoute because of duplicate id detected: XPriceChangeToRibRoute. Please correct ids to be unique among all your routes. 
    at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1352) 
... 

所以,我真正想要的是在ActiveMQ的部署也當上部分可見,無論是在我的ActiveMQ。如果可能的話記錄,或作爲單獨的日誌,例如camel.log。

+0

您確定在'conf/log4j.properties'中是否正確設置了駱駝日誌的日誌級別,即'log4j.logger.org.apache.camel = INFO'? –

+0

是的,我甚至嘗試設置log4j.logger.org.apache.camel = TRACE,但仍然沒有任何異常的痕跡。整個日誌的pastebin與log4j.logger.org.apache.activemq = INFO 和log4j.logger.org.apache = INFO此處:http://pastebin.com/SawmGgNH。正如你所看到的,org.apache.camel。*有幾個日誌條目,但是這個異常無處可尋。 – Daniel

+0

您是否嘗試啓用Camel跟蹤:''? –

回答

1

看一看wrapper.log。這就是應該找到STDOUT和STDERR的地方。嘗試使用包裝器啓動ActiveMQ,例如適用於MacOS,你可以使用:

apache-activemq-5.9.0/bin/macosx/activemq 

或者,如果這不是一個選項,重定向STDOUT/STDERR到一個日誌文件。