我正在调用Apache Camel XML DSL中的Javascript文件,该文件在Apache ServiceMix中运行,如下所示:
<endpoint id="myJavascript" uri="language:javascript:file:data/myJavascript.js"/>
...
<to ref="myJavascript"/>
...
我想在myJavascript中记录一条消息。这样消息就会显示在主Camel上下文日志中。
这里的Camel文档表示传递了CamelContext Java对象。我希望它能为记录器提供一个getter,这样我就可以在脚本中做这样的事情:
var log = context.getLog();
log.debug("Some debug log message");
然而,这里并没有提到记录器(我注意到调试器的getter和拦截器),所以看起来我运气不好。
有什么想法我可以做到这一点吗?
我在这篇文章中找到了我的答案。
我只需要在Javascript中添加以下内容:
var LOG = org.slf4j.LoggerFactory.getLogger(exchange.getFromRouteId());
这使用Camel Exchange From Route Id作为日志名称,但您可以改用脚本名称。
然后我可以按如下方式调用记录器,消息最终会出现在主Camel记录器中:
LOG.info("Log message at INFO level");
LOG.debug("Log message at DEBUG level");
我使用的是Camel 2.9.2,完成路线定义如下: 中提供https://stackoverflow.com/questions/18877562/how-can-i-log-a-header-value-in-camel-using-spring-dsl解决方案由于某种原因对我不起作用。 我可以看到一些与路由定义相关的驼峰跟踪
我正在开发一个需要从第三方SOAP Web服务读取数据的小型camel应用程序。 我还需要定义一个类似的路由,但在“From”中使用REST web服务
Iam试图用camel IE实现重播机制,我将不得不检索所有已经保存的消息,并转发到适当的camel路由进行重新处理。这将由quartz调度器触发。 我通过使用下面的代码实现了同样的效果。 1)一旦quartz调度器被触发,fwd到处理器,处理器将查询db并将消息作为列表,并在camel exchange属性中设置相同的属性作为列表。2)使用camel,其中LoopProcessor将在excha
在spring中提供了三种不同的方法来连接响应端: 我的目标是记录每个响应(标题状态代码),不管结果如何。 我怎样才能知道上述哪种方法是正确的?
这个递归编码是错误的还是仅仅是那个控制台。即使执行递归,log()也不总是被执行? 在控制台中执行testrecursion不会返回任何错误。 信息控制台日志显示 再次执行测试递归会在信息控制台日志中显示这一点。 第三次执行testrecursion会在信息控制台日志中显示这一点。 在对此进行了数十次测试后,递归步骤似乎偶尔被调用。输出似乎是随机的。预期输出为 这是否看起来像递归正确发生,只是控制
我有多个数据库,都包含同一个表。我想从中读取,将所有元素输入到方法中,并写回该方法的输出。 然而,我需要bean中元素来自哪个源的信息(例如持久性单元的名称)以进行验证。最好的方法是什么?