diff options
author | gjoranv <gv@verizonmedia.com> | 2019-11-11 15:59:50 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-11-12 16:11:11 +0100 |
commit | 093da15c73a98ad011626bfcab81d16f7389b40c (patch) | |
tree | 742fa950b9ffff61d1b6edc484563ae79e5c0a0a /jaxrs_client_utils | |
parent | 1f9f2bac2bdac8bd0ea93cca69c2e7585e73b4c2 (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.java | 24 |
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(); |