Skip to content

Commit 7901d8a

Browse files
committed
add log response test to interceptors.
1 parent fefb436 commit 7901d8a

File tree

4 files changed

+47
-18
lines changed

4 files changed

+47
-18
lines changed

gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLoggingInterceptor.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void onMessage(RespT message) {
8585
@Override
8686
public void onClose(Status status, Metadata trailers) {
8787
try {
88-
logResponse(status.getCode().toString(), logDataBuilder);
88+
logResponse(status, logDataBuilder, LOGGER);
8989
} finally {
9090
logDataBuilder = null; // release resource
9191
}
@@ -154,22 +154,22 @@ <RespT> void recordResponsePayload(RespT message, LogData.Builder logDataBuilder
154154
}
155155
}
156156

157-
void logResponse(String statusCode, LogData.Builder logDataBuilder) {
157+
void logResponse(Status status, LogData.Builder logDataBuilder, Logger logger) {
158158
try {
159159

160-
if (LOGGER.isInfoEnabled()) {
161-
logDataBuilder.responseStatus(statusCode);
160+
if (logger.isInfoEnabled()) {
161+
logDataBuilder.responseStatus(status.getCode().toString());
162162
}
163-
if (LOGGER.isInfoEnabled() && !LOGGER.isDebugEnabled()) {
163+
if (logger.isInfoEnabled() && !logger.isDebugEnabled()) {
164164
Map<String, String> responseData = logDataBuilder.build().toMapResponse();
165-
LoggingUtils.logWithMDC(LOGGER, Level.INFO, responseData, "Received Grpc response");
165+
LoggingUtils.logWithMDC(logger, Level.INFO, responseData, "Received Grpc response");
166166
}
167-
if (LOGGER.isDebugEnabled()) {
167+
if (logger.isDebugEnabled()) {
168168
Map<String, String> responsedDetailsMap = logDataBuilder.build().toMapResponse();
169-
LoggingUtils.logWithMDC(LOGGER, Level.DEBUG, responsedDetailsMap, "Received Grpc response");
169+
LoggingUtils.logWithMDC(logger, Level.DEBUG, responsedDetailsMap, "Received Grpc response");
170170
}
171171
} catch (Exception e) {
172-
LOGGER.error("Error logging request response", e);
172+
logger.error("Error logging request response", e);
173173
}
174174
}
175175

gax-java/gax-grpc/src/test/java/com/google/api/gax/grpc/GrpcLoggingInterceptorTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void testInterceptor_responseListener() {
115115
// --- Verify that the response listener's methods were called ---
116116
verify(interceptor).recordResponseHeaders(eq(responseHeaders), any(LogData.Builder.class));
117117
verify(interceptor).recordResponsePayload(any(), any(LogData.Builder.class));
118-
verify(interceptor).logResponse(eq(status.getCode().toString()), any(LogData.Builder.class));
118+
verify(interceptor).logResponse(eq(status), any(LogData.Builder.class), any(Logger.class));
119119
}
120120

121121
@Test
@@ -133,6 +133,20 @@ void testLogRequestInfo() {
133133
testAppender.stop();
134134
}
135135

136+
@Test
137+
void TestLogResponseInfo() {
138+
TestAppender testAppender = setupTestLogger(GrpcLoggingInterceptorTest.class);
139+
GrpcLoggingInterceptor interceptor = new GrpcLoggingInterceptor();
140+
interceptor.logResponse(Status.CANCELLED, LogData.builder(), LOGGER);
141+
142+
Assertions.assertEquals(1, testAppender.events.size());
143+
assertEquals(Level.INFO, testAppender.events.get(0).getLevel());
144+
assertEquals(
145+
"{\"response.status\":\"CANCELLED\",\"message\":\"Received Grpc response\"}",
146+
testAppender.events.get(0).getMessage());
147+
testAppender.stop();
148+
}
149+
136150
private TestAppender setupTestLogger(Class<?> clazz) {
137151
TestAppender testAppender = new TestAppender();
138152
testAppender.start();

gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptor.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void onMessage(RespT message) {
8686
@Override
8787
public void onClose(int statusCode, HttpJsonMetadata trailers) {
8888
try {
89-
logResponse(statusCode, logDataBuilder);
89+
logResponse(statusCode, logDataBuilder, LOGGER);
9090
} finally {
9191
logDataBuilder = null; // release resource
9292
}
@@ -166,21 +166,21 @@ private <RespT> void recordResponsePayload(RespT message, LogData.Builder logDat
166166
}
167167
}
168168

169-
private void logResponse(int statusCode, LogData.Builder logDataBuilder) {
169+
void logResponse(int statusCode, LogData.Builder logDataBuilder, Logger logger) {
170170
try {
171-
if (LOGGER.isInfoEnabled()) {
171+
if (logger.isInfoEnabled()) {
172172
logDataBuilder.responseStatus(String.valueOf(statusCode));
173173
}
174-
if (LOGGER.isInfoEnabled() && !LOGGER.isDebugEnabled()) {
174+
if (logger.isInfoEnabled() && !logger.isDebugEnabled()) {
175175
Map<String, String> responseData = logDataBuilder.build().toMapResponse();
176-
LoggingUtils.logWithMDC(LOGGER, Level.INFO, responseData, "Received HTTP response");
176+
LoggingUtils.logWithMDC(logger, Level.INFO, responseData, "Received HTTP response");
177177
}
178-
if (LOGGER.isDebugEnabled()) {
178+
if (logger.isDebugEnabled()) {
179179
Map<String, String> responsedDetailsMap = logDataBuilder.build().toMapResponse();
180-
LoggingUtils.logWithMDC(LOGGER, Level.DEBUG, responsedDetailsMap, "Received HTTP response");
180+
LoggingUtils.logWithMDC(logger, Level.DEBUG, responsedDetailsMap, "Received HTTP response");
181181
}
182182
} catch (Exception e) {
183-
LOGGER.error("Error logging request response", e);
183+
logger.error("Error logging request response", e);
184184
}
185185
}
186186

gax-java/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptorTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,21 @@ void testLogRequestInfo() {
7171
testAppender.stop();
7272
}
7373

74+
@Test
75+
void testLogResponseInfo() {
76+
77+
TestAppender testAppender = setupTestLogger(HttpJsonLoggingInterceptorTest.class);
78+
HttpJsonLoggingInterceptor interceptor = new HttpJsonLoggingInterceptor();
79+
interceptor.logResponse(200, LogData.builder(), LOGGER);
80+
81+
Assertions.assertEquals(1, testAppender.events.size());
82+
assertEquals(Level.INFO, testAppender.events.get(0).getLevel());
83+
assertEquals(
84+
"{\"response.status\":\"200\",\"message\":\"Received HTTP response\"}",
85+
testAppender.events.get(0).getMessage());
86+
testAppender.stop();
87+
}
88+
7489
private TestAppender setupTestLogger(Class<?> clazz) {
7590
TestAppender testAppender = new TestAppender();
7691
testAppender.start();

0 commit comments

Comments
 (0)