Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce primitives to control internal log level #1199

Merged
merged 6 commits into from
Nov 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@
import io.servicetalk.http.api.StreamingHttpConnection;
import io.servicetalk.http.api.StreamingHttpConnectionFilterFactory;
import io.servicetalk.http.api.StreamingHttpRequest;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.ServiceTalkSocketOptions;

import java.net.SocketOption;
import java.net.StandardSocketOptions;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

interface BaseGrpcClientBuilder<U, R> {
Expand Down Expand Up @@ -66,13 +68,26 @@ interface BaseGrpcClientBuilder<U, R> {
<T> BaseGrpcClientBuilder<U, R> socketOption(SocketOption<T> option, T value);

/**
* Enable wire-logging for clients created by this builder. All wire events will be logged at trace level.
*
* Enable wire-logging for clients created by this builder.
* <p>
* @deprecated Use {@link #enableWireLogging(String, LogLevel, BooleanSupplier)} instead.
* @param loggerName The name of the logger to log wire events.
* @return {@code this}.
*/
@Deprecated
BaseGrpcClientBuilder<U, R> enableWireLogging(String loggerName);

/**
* Enables wire-logging for connections created by this builder.
*
* @param loggerName The name of the logger to log wire events.
* @param logLevel The level to log at.
* @param logUserData {@code true} to include user data (e.g. data, headers, etc.). {@code false} to exclude user
* data and log only network events.
* @return {@code this}.
*/
BaseGrpcClientBuilder<U, R> enableWireLogging(String loggerName, LogLevel logLevel, BooleanSupplier logUserData);

/**
* Configurations of various underlying protocol versions.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@
import io.servicetalk.http.api.StreamingHttpRequest;
import io.servicetalk.http.api.StreamingHttpRequester;
import io.servicetalk.http.api.StreamingHttpResponse;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

import static io.servicetalk.concurrent.api.Single.failed;
Expand Down Expand Up @@ -62,8 +64,13 @@ public abstract class GrpcClientBuilder<U, R>
public abstract <T> GrpcClientBuilder<U, R> socketOption(SocketOption<T> option, T value);

@Override
@Deprecated
public abstract GrpcClientBuilder<U, R> enableWireLogging(String loggerName);

@Override
public abstract GrpcClientBuilder<U, R> enableWireLogging(String loggerName, LogLevel logLevel,
BooleanSupplier logUserData);

@Override
public abstract GrpcClientBuilder<U, R> protocols(HttpProtocolConfig... protocols);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import io.servicetalk.http.api.StreamingHttpService;
import io.servicetalk.http.api.StreamingHttpServiceFilter;
import io.servicetalk.http.api.StreamingHttpServiceFilterFactory;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.ConnectionAcceptor;
import io.servicetalk.transport.api.ConnectionAcceptorFactory;
import io.servicetalk.transport.api.IoExecutor;
Expand All @@ -39,6 +40,7 @@

import java.net.SocketOption;
import java.net.StandardSocketOptions;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

import static io.servicetalk.concurrent.api.Single.succeeded;
Expand Down Expand Up @@ -113,13 +115,27 @@ public abstract class GrpcServerBuilder {
public abstract <T> GrpcServerBuilder socketOption(SocketOption<T> option, T value);

/**
* Enable wire-logging for this server. All wire events will be logged at trace level.
*
* Enable wire-logging for this server.
* <p>
* @deprecated Use {@link #enableWireLogging(String, LogLevel, BooleanSupplier)} instead.
* @param loggerName The name of the logger to log wire events.
* @return {@code this}.
*/
@Deprecated
public abstract GrpcServerBuilder enableWireLogging(String loggerName);

/**
* Enables wire-logging for connections created by this builder.
*
* @param loggerName The name of the logger to log wire events.
* @param logLevel The level to log at.
* @param logUserData {@code true} to include user data (e.g. data, headers, etc.). {@code false} to exclude user
* data and log only network events.
* @return {@code this}.
*/
public abstract GrpcServerBuilder enableWireLogging(String loggerName, LogLevel logLevel,
BooleanSupplier logUserData);

/**
* Sets a {@link TransportObserver} that provides visibility into transport events.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@
import io.servicetalk.http.api.HttpProtocolConfig;
import io.servicetalk.http.api.StreamingHttpConnectionFilterFactory;
import io.servicetalk.http.api.StreamingHttpRequest;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.TransportObserver;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

interface SingleAddressGrpcClientBuilder<U, R,
Expand All @@ -53,6 +55,11 @@ interface SingleAddressGrpcClientBuilder<U, R,
@Override
SingleAddressGrpcClientBuilder<U, R, SDE> enableWireLogging(String loggerName);

@Deprecated
@Override
SingleAddressGrpcClientBuilder<U, R, SDE> enableWireLogging(String loggerName, LogLevel logLevel,
BooleanSupplier logUserData);

@Override
SingleAddressGrpcClientBuilder<U, R, SDE> protocols(HttpProtocolConfig... protocols);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@
import io.servicetalk.http.api.StreamingHttpClientFilterFactory;
import io.servicetalk.http.api.StreamingHttpConnectionFilterFactory;
import io.servicetalk.http.api.StreamingHttpRequest;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

import static io.servicetalk.http.netty.HttpProtocolConfigs.h2Default;
Expand Down Expand Up @@ -77,6 +79,13 @@ public GrpcClientBuilder<U, R> enableWireLogging(final String loggerName) {
return this;
}

@Override
public GrpcClientBuilder<U, R> enableWireLogging(final String loggerName, final LogLevel logLevel,
final BooleanSupplier logUserData) {
httpClientBuilder.enableWireLogging(loggerName, logLevel, logUserData);
return this;
}

@Override
public GrpcClientBuilder<U, R> protocols(HttpProtocolConfig... protocols) {
httpClientBuilder.protocols(protocols);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@
import io.servicetalk.http.api.StreamingHttpRequest;
import io.servicetalk.http.api.StreamingHttpService;
import io.servicetalk.http.api.StreamingHttpServiceFilterFactory;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.ConnectionAcceptorFactory;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.ServerContext;
import io.servicetalk.transport.api.TransportObserver;
import io.servicetalk.transport.netty.internal.ExecutionContextBuilder;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;

import static io.servicetalk.grpc.api.GrpcExecutionStrategies.defaultStrategy;
Expand Down Expand Up @@ -91,6 +93,13 @@ public GrpcServerBuilder enableWireLogging(final String loggerName) {
return this;
}

@Override
public GrpcServerBuilder enableWireLogging(final String loggerName, final LogLevel logLevel,
final BooleanSupplier logUserData) {
httpServerBuilder.enableWireLogging(loggerName, logLevel, logUserData);
return this;
}

@Override
public GrpcServerBuilder transportObserver(final TransportObserver transportObserver) {
httpServerBuilder.transportObserver(transportObserver);
Expand Down
1 change: 1 addition & 0 deletions servicetalk-http-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ dependencies {
api project(":servicetalk-buffer-api")
api project(":servicetalk-client-api")
api project(":servicetalk-concurrent-api")
api project(":servicetalk-logging-api")
api project(":servicetalk-serialization-api")
api project(":servicetalk-transport-api")
api project(":servicetalk-oio-api")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@
package io.servicetalk.http.api;

import io.servicetalk.buffer.api.BufferAllocator;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.ServiceTalkSocketOptions;

import org.slf4j.event.Level;

import java.net.SocketOption;
import java.net.StandardSocketOptions;
import java.util.function.BooleanSupplier;
import java.util.function.Function;
import java.util.function.Predicate;

Expand Down Expand Up @@ -74,13 +74,26 @@ abstract class BaseHttpBuilder<ResolvedAddress> {
/**
* Enables wire-logging for connections created by this builder.
* <p>
* All wire events will be logged at {@link Level#TRACE TRACE} level.
*
* @deprecated Use {@link #enableWireLogging(String, LogLevel, BooleanSupplier)} instead.
* @param loggerName The name of the logger to log wire events.
* @return {@code this}.
*/
@Deprecated
public abstract BaseHttpBuilder<ResolvedAddress> enableWireLogging(String loggerName);

/**
* Enables wire-logging for connections created by this builder.
*
* @param loggerName The name of the logger to log wire events.
* @param logLevel The level to log at.
* @param logUserData {@code true} to include user data (e.g. data, headers, etc.). {@code false} to exclude user
* data and log only network events.
* @return {@code this}.
*/
public abstract BaseHttpBuilder<ResolvedAddress> enableWireLogging(String loggerName,
LogLevel logLevel,
BooleanSupplier logUserData);

/**
* Configurations of various HTTP protocol versions.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
import io.servicetalk.client.api.ConnectionFactoryFilter;
import io.servicetalk.client.api.ServiceDiscoverer;
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.IoExecutor;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Function;
import java.util.function.Predicate;

Expand All @@ -42,8 +44,14 @@ abstract class BaseSingleAddressHttpClientBuilder<U, R, SDE extends ServiceDisco
public abstract <T> BaseSingleAddressHttpClientBuilder<U, R, SDE> socketOption(SocketOption<T> option, T value);

@Override
@Deprecated
public abstract BaseSingleAddressHttpClientBuilder<U, R, SDE> enableWireLogging(String loggerName);

@Override
public abstract BaseSingleAddressHttpClientBuilder<U, R, SDE> enableWireLogging(String loggerName,
LogLevel logLevel,
BooleanSupplier logUserData);

@Override
public abstract BaseSingleAddressHttpClientBuilder<U, R, SDE> protocols(HttpProtocolConfig... protocols);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.concurrent.api.BiIntPredicate;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.ExecutionContext;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.TransportObserver;

import java.net.SocketOption;
import java.util.function.BooleanSupplier;
import java.util.function.Function;
import java.util.function.Predicate;

Expand All @@ -55,9 +57,15 @@ abstract class HttpClientBuilder<U, R, SDE extends ServiceDiscovererEvent<R>> ex
@Override
public abstract <T> HttpClientBuilder<U, R, SDE> socketOption(SocketOption<T> option, T value);

@Deprecated
@Override
public abstract HttpClientBuilder<U, R, SDE> enableWireLogging(String loggerName);

@Override
public abstract HttpClientBuilder<U, R, SDE> enableWireLogging(String loggerName,
LogLevel logLevel,
BooleanSupplier logUserData);

@Override
public abstract HttpClientBuilder<U, R, SDE> protocols(HttpProtocolConfig... protocols);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@
import io.servicetalk.concurrent.api.AsyncContext;
import io.servicetalk.concurrent.api.Single;
import io.servicetalk.http.api.HttpApiConversions.ServiceAdapterHolder;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.ConnectionAcceptor;
import io.servicetalk.transport.api.ConnectionAcceptorFactory;
import io.servicetalk.transport.api.IoExecutor;
import io.servicetalk.transport.api.ServerContext;
import io.servicetalk.transport.api.ServiceTalkSocketOptions;
import io.servicetalk.transport.api.TransportObserver;

import org.slf4j.event.Level;

import java.net.SocketOption;
import java.net.StandardSocketOptions;
import java.util.function.BooleanSupplier;
import java.util.function.Predicate;
import javax.annotation.Nullable;

Expand Down Expand Up @@ -117,13 +117,25 @@ public abstract class HttpServerBuilder {
/**
* Enables wire-logging for this server.
* <p>
* All wire events will be logged at {@link Level#TRACE TRACE} level.
*
* @deprecated Use {@link #enableWireLogging(String, LogLevel, BooleanSupplier)} instead.
* @param loggerName The name of the logger to log wire events.
* @return {@code this}.
*/
@Deprecated
public abstract HttpServerBuilder enableWireLogging(String loggerName);

/**
* Enables wire-logging for this server.
*
* @param loggerName The name of the logger to log wire events.
* @param logLevel The level to log at.
* @param logUserData {@code true} to include user data (e.g. data, headers, etc.). {@code false} to exclude user
* data and log only network events.
* @return {@code this}.
*/
public abstract HttpServerBuilder enableWireLogging(String loggerName, LogLevel logLevel,
BooleanSupplier logUserData);

/**
* Sets a {@link TransportObserver} that provides visibility into transport events.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@
import io.servicetalk.client.api.ConnectionFactoryFilter;
import io.servicetalk.client.api.ServiceDiscoverer;
import io.servicetalk.client.api.ServiceDiscovererEvent;
import io.servicetalk.logging.api.LogLevel;
import io.servicetalk.transport.api.ClientSecurityConfigurator;
import io.servicetalk.transport.api.HostAndPort;
import io.servicetalk.transport.api.IoExecutor;

import java.net.SocketOption;
import java.util.function.BiConsumer;
import java.util.function.BooleanSupplier;
import java.util.function.Function;
import java.util.function.Predicate;

Expand Down Expand Up @@ -57,9 +59,15 @@ public abstract class MultiAddressHttpClientBuilder<U, R>
@Override
public abstract <T> MultiAddressHttpClientBuilder<U, R> socketOption(SocketOption<T> option, T value);

@Deprecated
@Override
public abstract MultiAddressHttpClientBuilder<U, R> enableWireLogging(String loggerName);

@Override
public abstract MultiAddressHttpClientBuilder<U, R> enableWireLogging(String loggerName,
LogLevel logLevel,
BooleanSupplier logUserData);

@Override
public abstract MultiAddressHttpClientBuilder<U, R> protocols(HttpProtocolConfig... protocols);

Expand Down
Loading