Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 5d3d6b679 -> 3206fdffe
[CXF-7389] Logging ClientErrorExceptions with FINE level, making it possible to customize it Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/3206fdff Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/3206fdff Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/3206fdff Branch: refs/heads/3.0.x-fixes Commit: 3206fdffee144f39c8f528806c8e6de599dcb146 Parents: 5d3d6b6 Author: Sergey Beryozkin <[email protected]> Authored: Thu Aug 31 13:39:30 2017 +0100 Committer: Sergey Beryozkin <[email protected]> Committed: Thu Aug 31 13:50:04 2017 +0100 ---------------------------------------------------------------------- .../org/apache/cxf/jaxrs/utils/JAXRSUtils.java | 23 +++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/3206fdff/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java index 704ed02..ac915bd 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java @@ -49,6 +49,7 @@ import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.ClientErrorException; import javax.ws.rs.Consumes; import javax.ws.rs.HttpMethod; import javax.ws.rs.Produces; @@ -533,7 +534,8 @@ public final class JAXRSUtils { mediaTypeToString(requestType), convertTypesToString(acceptContentTypes)); if (!"OPTIONS".equalsIgnoreCase(httpMethod)) { - LOG.warning(errorMsg.toString()); + Level logLevel = getExceptionLogLevel(message, ClientErrorException.class); + LOG.log(logLevel == null ? Level.FINE : logLevel, errorMsg.toString()); } Response response = createResponse(getRootResources(message), message, errorMsg.toString(), status, methodMatched == 0); @@ -541,6 +543,25 @@ public final class JAXRSUtils { } + + + private static Level getExceptionLogLevel(Message message, Class<? extends WebApplicationException> exClass) { + Level logLevel = null; + Object logLevelProp = message.get(exClass.getName() + ".log.level"); + if (logLevelProp != null) { + if (logLevelProp instanceof Level) { + logLevel = (Level)logLevelProp; + } else { + try { + logLevel = Level.parse(logLevelProp.toString()); + } catch (Exception ex) { + // ignore + } + } + } + return logLevel; + } + private static List<MediaType> intersectSortMediaTypes(List<MediaType> acceptTypes, List<MediaType> producesTypes, final boolean checkDistance) {
