aboutsummaryrefslogtreecommitdiffstats
path: root/jaxrs_client_utils
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-11-11 15:59:50 +0100
committergjoranv <gv@verizonmedia.com>2019-11-12 16:11:11 +0100
commit093da15c73a98ad011626bfcab81d16f7389b40c (patch)
tree742fa950b9ffff61d1b6edc484563ae79e5c0a0a /jaxrs_client_utils
parent1f9f2bac2bdac8bd0ea93cca69c2e7585e73b4c2 (diff)
Filter out unwanted log messages from Jersey client.
Diffstat (limited to 'jaxrs_client_utils')
-rw-r--r--jaxrs_client_utils/src/main/java/ai/vespa/util/http/VespaClientBuilderFactory.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/jaxrs_client_utils/src/main/java/ai/vespa/util/http/VespaClientBuilderFactory.java b/jaxrs_client_utils/src/main/java/ai/vespa/util/http/VespaClientBuilderFactory.java
index d55128069c4..50e555e7acd 100644
--- a/jaxrs_client_utils/src/main/java/ai/vespa/util/http/VespaClientBuilderFactory.java
+++ b/jaxrs_client_utils/src/main/java/ai/vespa/util/http/VespaClientBuilderFactory.java
@@ -10,9 +10,13 @@ import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
+import java.util.Optional;
+import java.util.logging.Filter;
import java.util.logging.Level;
import java.util.logging.Logger;
+import static java.util.logging.Level.CONFIG;
+
/**
* Factory for JAX-RS http client builder for internal Vespa communications over http/https.
*
@@ -26,6 +30,26 @@ public class VespaClientBuilderFactory implements AutoCloseable {
private static final Logger log = Logger.getLogger(VespaClientBuilderFactory.class.getName());
+ static {
+ // CONFIG log message are logged repeatedly from these classes.
+ disableConfigLogging("org.glassfish.jersey.client.internal.HttpUrlConnector");
+ disableConfigLogging("org.glassfish.jersey.process.internal.ExecutorProviders");
+ }
+
+ // This method will hook a filter into the Jersey logger removing unwanted messages.
+ private static void disableConfigLogging(String className) {
+ @SuppressWarnings("LoggerInitializedWithForeignClass")
+ Logger logger = Logger.getLogger(className);
+ Optional<Filter> currentFilter = Optional.ofNullable(logger.getFilter());
+ Filter filter = logRecord ->
+ !logRecord.getMessage().startsWith("Restricted headers are not enabled")
+ && !logRecord.getMessage().startsWith("Selected ExecutorServiceProvider implementation")
+ && !logRecord.getLevel().equals(CONFIG)
+ && currentFilter.map(f -> f.isLoggable(logRecord)).orElse(true); // Honour existing filter if exists
+ logger.setFilter(filter);
+ }
+
+
private final TlsContext tlsContext = TransportSecurityUtils.createTlsContext().orElse(null);
private final MixedMode mixedMode = TransportSecurityUtils.getInsecureMixedMode();