Search code examples
javaslf4jnetflix-zuulnetflix-feign

Can't able to log using Zuul API gateway


This is my ZuulFilter.java

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;

@Component
public class ZuulLoggingFilter extends ZuulFilter {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Override
    public boolean shouldFilter() {
        return false;
    }

    @Override
    public Object run() throws ZuulException {
        HttpServletRequest request = RequestContext.getCurrentContext().getRequest();
        logger.info("request -->{} request uri -->{}",request,request.getRequestURI());
        return null;
    }

    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 1;
    }

}

I have used slf4j library to log, but i can't see any log in my console after using api gateway. I have used api gateway using following url

http://localhost:8765/{application-name}/{uri}.

I have got response properly but, It doesn't get logged in console.


Solution

  • Should filter must return true to get run called:

    @Override
    public boolean shouldFilter() {
        return true;
    }