Skip to content

Commit 99d5093

Browse files
committed
Updated with suggested changes in PR 135
1 parent 28ace01 commit 99d5093

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

contrib/grpc-contrib/src/main/java/com/salesforce/grpc/contrib/interceptor/DebugClientInterceptor.java

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
package com.salesforce.grpc.contrib.interceptor;
99

10+
import java.util.Arrays;
11+
import java.util.EnumSet;
12+
1013
import org.slf4j.Logger;
1114
import org.slf4j.LoggerFactory;
1215

@@ -31,13 +34,13 @@ public class DebugClientInterceptor implements ClientInterceptor {
3134
private static final String RESPONSE = "Response";
3235

3336
public enum Level {
34-
NONE, STATUS, HEADERS, MESSAGE
37+
STATUS, HEADERS, MESSAGE
3538
}
3639

37-
private Level level = Level.NONE;
40+
private EnumSet<Level> levels = EnumSet.of(Level.STATUS);
3841

39-
public DebugClientInterceptor(Level level) {
40-
this.level = level;
42+
public DebugClientInterceptor(Level... levels) {
43+
this.levels = EnumSet.copyOf(Arrays.asList(levels));
4144
}
4245

4346
@Override
@@ -56,10 +59,7 @@ public void start(Listener<RespT> responseListener, Metadata headers) {
5659
logHeaders(REQUEST, headers);
5760
super.start(
5861
new ForwardingClientCallListener.SimpleForwardingClientCallListener<RespT>(responseListener) {
59-
/**
60-
* for logging level of {@code HEADERS} or {@code MESSAGE}, the status will be
61-
* logged after headers and message
62-
*/
62+
6363
@Override
6464
public void onClose(Status status, Metadata trailers) {
6565
logStatus(status, method);
@@ -82,38 +82,32 @@ public void onMessage(RespT message) {
8282
};
8383
}
8484

85-
/**
86-
* override this method to change the way outbound request method name is logged.
87-
*/
88-
protected <ReqT, RespT> void logMethod(MethodDescriptor<ReqT, RespT> method) {
89-
if (level == Level.STATUS || level == Level.HEADERS || level == Level.MESSAGE) {
90-
logger.debug("{} path : {}", REQUEST, method.getFullMethodName());
85+
private <ReqT, RespT> void logMethod(MethodDescriptor<ReqT, RespT> method) {
86+
if (levels.contains(Level.STATUS)) {
87+
log(String.format("%s path : %s", REQUEST, method.getFullMethodName()));
9188
}
9289
}
9390

94-
/**
95-
* override this method to change the way status and method name is logged for inbound response.
96-
*/
97-
protected <ReqT, RespT> void logStatus(Status status, MethodDescriptor<ReqT, RespT> method) {
98-
if (level == Level.STATUS || level == Level.HEADERS || level == Level.MESSAGE) {
99-
logger.debug("{} status: {} {} for path :{}", RESPONSE, status.getCode().value(), status.getCode(),
100-
method.getFullMethodName());
91+
private <ReqT, RespT> void logStatus(Status status, MethodDescriptor<ReqT, RespT> method) {
92+
if (levels.contains(Level.STATUS)) {
93+
log(String.format("%s status: %s %s for path : %s", RESPONSE, status.getCode().value(), status.getCode(),
94+
method.getFullMethodName()));
10195
}
10296
}
103-
/**
104-
* override this method to change the way headers are logged.
105-
*/
106-
protected void logHeaders(String type, Metadata headers) {
107-
if (level == Level.HEADERS || level == Level.MESSAGE) {
108-
logger.debug("{} headers : {}", type, headers);
97+
98+
private void logHeaders(String type, Metadata headers) {
99+
if (levels.contains(Level.HEADERS)) {
100+
log(String.format("%s headers : %s", type, headers));
109101
}
110102
}
111-
/**
112-
* override this method to change the way message is logged.
113-
*/
114-
protected <RespT> void logMessage(String type, RespT message) {
115-
if (this.level == Level.MESSAGE) {
116-
logger.debug("{} message : {}", type, message);
103+
104+
private <RespT> void logMessage(String type, RespT message) {
105+
if (levels.contains(Level.MESSAGE)) {
106+
log(String.format("%s message : %s", type, message));
117107
}
118108
}
109+
110+
protected void log(String logmessage) {
111+
logger.debug(logmessage);
112+
}
119113
}

0 commit comments

Comments
 (0)