Spring cloud 如何记录调用hystrix fallback方法的原因

Spring cloud 如何记录调用hystrix fallback方法的原因,spring-cloud,hystrix,netflix-feign,feign,Spring Cloud,Hystrix,Netflix Feign,Feign,我正在使用Fiegn创建一个REST客户端。我已经让我的调用正常工作,但我想记录调用回退方法的异常情况。 代码如下: public interface FooService { Foo queryFoo(Integer fooId); } public interface FooServiceFallback implements FooService { @Override Foo queryFoo(Integer fooId) { return ne

我正在使用Fiegn创建一个REST客户端。我已经让我的调用正常工作,但我想记录调用回退方法的异常情况。
代码如下:

public interface FooService {
    Foo queryFoo(Integer fooId);
}

public interface FooServiceFallback implements FooService {
    @Override
    Foo queryFoo(Integer fooId) {
        return new Foo();
    }
}

@Configuration
public class FooServiceConfiguration {
    @Bean
    public FooService() {
        return HystrixFeign.builder().[...].target(FooService.class, "http://xxx", FooServiceFallback.class);
    }
}
当发生异常时,可以调用回退方法,但不会记录任何异常

如何记录触发调用的回退方法的异常?

比如connectionTimeoutException

回退方法可以采用类型为
Throwable
的额外参数,这将指示原因

例如,如果您的方法是这样的

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String mainMethod(String s) {
 .....
}
public String fallbackMethod(String s) {
     ......
}
您的回退方法可以是这样的

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String mainMethod(String s) {
 .....
}
public String fallbackMethod(String s) {
     ......
}

在你的情况下,使用第二个

编辑:

如果您使用的是
HystrixFeign
,这就是您的操作方式。您应该使用
FallbackFactory

@Component
public class FooServiceFallbackFactory implements FallbackFactory<FooService> {

    @Override
    public FooService create(Throwable throwable) {
        return new FooServiceFallback(throwable);
    }

}
此外,您还需要更改一些配置类

@Configuration
public class FooServiceConfiguration {
    @Bean
    public FooService() {
        return HystrixFeign.builder().[...].target(FooService.class, "http://xxx", FooServiceFallbackFactory.class);
    }
}

我编辑了这个问题。fallback类实现了FaignClient的接口。如何获得可抛弃的论点?