0

我有一个授权过滤器。在尝试检索路径参数时,我无法获取值。有人可以告诉我,下面的代码有什么问题。

@AuthorizedAccess  //named exception
@Provider
public class AuthorizedAccessFilter implements ContainerRequestFilter {

/** The Constant logger. */
private final static Logger logger = LoggerFactory.getLogger(AuthorizedAccessFilter.class);


public void filter(ContainerRequestContext requestContext) {

        logger.info(AUTH_MESSAGE, requestContext.getUriInfo().getAbsolutePath());
        MultivaluedMap<String, String> pathParameters = requestContext.getUriInfo().getPathParameters();
        for (Entry<String, List<String>> e : pathParameters.entrySet()) {
            logger.info( " key :value " +e.getKey(), e.getValue());
        }
        logger.info("pathparammap = {} ",pathParameters.size());

 }

它返回:它返回键名但不返回值。

AuthorizedAccessFilter  -  key value entity-id
AuthorizedAccessFilter  - pathparammap = 1 
4

1 回答 1

1

好吧,它看起来像记录器中一个简单的错误格式(第一个参数)。您需要指定至少一个{}将被替换为第二个logger.info参数的值

logger.info( " key :value {}" + e.getKey(), e.getValue());
or 
logger.info( " key :value {} {}" , e.getKey() , e.getValue());

另请查看SLF4J 文档

于 2017-11-25T23:56:00.407 回答