问题
I have a simple camel application logging events on a timer. The logs currently go to a ConsoleAppender.
<route>
<from uri="timer://hello?period=5000"/>
<to uri="log:loggingstuff?showAll=true"/>
</route>
I have attempted to follow the documentation as per: http://hawt.io/plugins/logs/
The application is deployed as a war on jetty, and has log4j, slf4j and insight-log4j as dependencies. hawtio-default-1.4.37.war is deployed alongside it in the ${jetty.home}/webapps directory. Jetty is started with "-Dhawtio.authenticationEnabled=false -Dhawtio.offline=true"
<dependency>
<groupId>io.fabric8.insight</groupId>
<artifactId>insight-log4j</artifactId>
<version>1.2.0.Beta4</version>
</dependency>
and has the logQuery bean in the spring camel-context.xml
<bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
lazy-init="false" scope="singleton"
init-method="start" destroy-method="stop"/>
Unfortunately I am not seeing the log events generated from the camel application. The only events I see are:
2015-01-08 15:09:20.026 WARNio.hawt.config.ConfigFacade No ConfigFacade constructed yet so using default configuration for now
2015-01-08 15:09:20.043 INFOio.hawt.git.GitFacade hawtio using config directory: /Users/ohhai/.hawtio/config
2015-01-08 15:09:20.088 INFOio.hawt.git.GitFacade Performing a pull in git repository /Users/ohhai/.hawtio/config on remote URL: https://github.com/hawtio/hawtio-config.git. Subsequent pull attempts will use debug logging
2015-01-08 15:09:21.618 WARNio.hawt.jvm.local.JVMList Local JVM discovery disabled as this JVM cannot access com.sun.tools.attach.VirtualMachine due to: com/sun/tools/attach/VirtualMachine
2015-01-08 15:09:21.621 INFOio.hawt.web.AuthenticationFilter Starting hawtio authentication filter, JAAS authentication disabled
Can anyone give me some pointers on how to get the logging displaying on the Logs Tab?
回答1:
I've just run into same problem. I resolved it but not sure it's the best solution.
Camel uses sfl4j as logging facade. Hawtio log plugin intercepts Log4J (1.x) logging. Make sure the logging bundle you use with slf4j is log4j 1.x (slf4j-log4j12-x.x.x.jar). I used Log4J 2.x bundle before and was not working. With Log4J 1.x it works well now
回答2:
I'm not entirely sure how I did it - but I managed to get this running - using the log4j 1.x as you have suggested - and also excluding commons-logging from the application build.
来源:https://stackoverflow.com/questions/27832931/jetty-how-to-make-a-camel-application-log-events-to-the-hawtio-logs-tab