apache Camel ftp 不会记录错误的密码

问题描述 投票:0回答:3

当我使用 Camel 连接到 sftp 服务器并且密码错误时,我没有得到任何有关此的信息。如果由于密码错误而未尝试连接,我该如何告诉camel执行某些操作(例如记录日志)。如果用户名错误也是如此。 下面是我的骆驼路线的示例。

       CamelContext camelContext = new DefaultCamelContext();
       camelContext.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
               errorHandler(loggingErrorHandler().level(LoggingLevel.DEBUG));

               from("sftp://my.sftp.server.com:21111/myDir&username=user&password=secret")
               .to("file:test");

            });
        camelContext.start();

据我了解, errorHandler(loggingErrorHandler().level(LoggingLevel.DEBUG)); 行应该能够记录发生的一切。

有什么想法吗?

logging ftp passwords apache-camel sftp
3个回答
2
投票

错误一定在某个地方被抑制了; Camel FTP 组件以 TRACE 级别记录内容,应该包括所有内容。你用slf4j吗?如果没有,您可以通过在类路径中创建一个名为“log4j.properties”的文件来启用它。

将此文件的内容设置为:

log4j.rootLogger=INFO, out
og4j.logger.org.apache.camel=DEBUG

这将使Camel的日志记录级别变为DEBUG。这意味着你应该得到很多日志,包括登录失败。

您还需要将其包含在您的 pom.xml 中(如果使用 Maven):

<dependencies>
  <dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
  </dependency>
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
  </dependency>
</dependencies>

1
投票

请参阅此常见问题解答

它也适用于 FTP。

您需要将路由使用者与 Camel 错误处理程序桥接起来,以使路由 errorHandler 做出反应。这是一个先有鸡还是先有蛋的情况,错误处理程序通常仅在您有要路由的 Exchange 时才会做出反应。但是,如果 FTP 使用者在创建 Exchange 之前失败,则没有 Exchange 可供路由。这就是桥梁可以做的事情。


0
投票

我发现 Camel 将其记录在信息级别。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.