Jetty - 如何将camel应用程序日志事件发送到hawtio Logs选项卡

时间:2015-01-08 04:27:00

标签: java spring jetty apache-camel hawtio

我有一个简单的camel应用程序在计时器上记录事件。日志当前转到ConsoleAppender。

    <route>
        <from uri="timer://hello?period=5000"/>
        <to uri="log:loggingstuff?showAll=true"/>
    </route>

我试图按照以下文档进行操作:http://hawt.io/plugins/logs/

应用程序部署为对jetty的战争,并将log4j,slf4j和insight-log4j作为依赖项。 hawtio-default-1.4.37.war与它一起部署在$ {jetty.home} / webapps目录中。 Jetty以“-Dhawtio.authenticationEnabled = false -Dhawtio.offline = true”开头

    <dependency>
        <groupId>io.fabric8.insight</groupId>
        <artifactId>insight-log4j</artifactId>
        <version>1.2.0.Beta4</version>
    </dependency> 

并在spring camel-context.xml中有logQuery bean

<bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
  lazy-init="false" scope="singleton"
  init-method="start" destroy-method="stop"/>

不幸的是,我没有看到camel应用程序生成的日志事件。我看到的唯一事件是:

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

有人可以给我一些关于如何在日志选项卡上显示日志的提示吗?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我解决了它,但不确定它是最好的解决方案。

Camel使用sfl4j作为日志记录。 Hawtio日志插件拦截Log4J(1.x)日志记录。确保与slf4j一起使用的日志记录包是log4j 1.x(slf4j-log4j12-x.x.x.jar)。我之前使用过Log4J 2.x捆绑包,但是没有工作。使用Log4J 1.x它现在运行良好

答案 1 :(得分:0)

我并不完全确定我是如何做到的 - 但我设法让这个运行 - 使用你建议的log4j 1.x - 并且还从应用程序构建中排除了commons-logging。