20
20
21
21
import ch .qos .logback .classic .Level ;
22
22
import ch .qos .logback .classic .spi .ILoggingEvent ;
23
+ import ch .qos .logback .core .AppenderBase ;
23
24
import com .fasterxml .jackson .databind .JsonNode ;
24
25
import com .fasterxml .jackson .databind .ObjectMapper ;
25
26
import com .google .api .gax .grpc .GrpcLoggingInterceptor ;
@@ -57,22 +58,11 @@ public class ITLogging1x {
57
58
58
59
private static final Logger CLASS_LOGGER = LoggerFactory .getLogger (ITLogging1x .class );
59
60
60
- private TestAppender setupTestLogger (Class <?> clazz , Level level ) {
61
- TestAppender testAppender = new TestAppender ();
62
- testAppender .start ();
63
- Logger logger = LoggerFactory .getLogger (clazz );
64
- ((ch .qos .logback .classic .Logger ) logger ).setLevel (level );
65
- ((ch .qos .logback .classic .Logger ) logger ).addAppender (testAppender );
66
- return testAppender ;
67
- }
68
-
69
- private TestMdcAppender setupTestMdcAppender (Class <?> clazz , Level level ) {
70
- TestMdcAppender appender = new TestMdcAppender ();
61
+ private <T extends AppenderBase <ILoggingEvent >> void setupTestLogger (T appender , Class <?> clazz , Level level ) {
71
62
appender .start ();
72
63
Logger logger = LoggerFactory .getLogger (clazz );
73
64
((ch .qos .logback .classic .Logger ) logger ).setLevel (level );
74
65
((ch .qos .logback .classic .Logger ) logger ).addAppender (appender );
75
- return appender ;
76
66
}
77
67
78
68
@ BeforeAll
@@ -101,7 +91,8 @@ void test() {
101
91
102
92
@ Test
103
93
void testGrpc_receiveContent_logDebug () {
104
- TestAppender testAppender = setupTestLogger (GrpcLoggingInterceptor .class , Level .DEBUG );
94
+ TestAppender testAppender = new TestAppender ();
95
+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .DEBUG );
105
96
assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
106
97
107
98
assertThat (testAppender .events .size ()).isEqualTo (2 );
@@ -137,7 +128,8 @@ void testGrpc_receiveContent_logDebug() {
137
128
138
129
@ Test
139
130
void testGrpc_receiveContent_logDebug_structured_log () throws IOException {
140
- TestMdcAppender testAppender = setupTestMdcAppender (GrpcLoggingInterceptor .class , Level .DEBUG );
131
+ TestMdcAppender testAppender = new TestMdcAppender ();
132
+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .DEBUG );
141
133
assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
142
134
List <byte []> byteLists = testAppender .getByteLists ();
143
135
assertThat (byteLists .size ()).isEqualTo (2 );
@@ -153,7 +145,8 @@ void testGrpc_receiveContent_logDebug_structured_log() throws IOException {
153
145
154
146
@ Test
155
147
void testGrpc_receiveContent_logInfo () {
156
- TestAppender testAppender = setupTestLogger (GrpcLoggingInterceptor .class , Level .INFO );
148
+ TestAppender testAppender = new TestAppender ();
149
+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .INFO );
157
150
assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
158
151
159
152
assertThat (testAppender .events .size ()).isEqualTo (2 );
@@ -181,7 +174,8 @@ void testGrpc_receiveContent_logInfo() {
181
174
182
175
@ Test
183
176
void testGrpc_receiveContent_logInfo_structured_log () throws IOException {
184
- TestMdcAppender testAppender = setupTestMdcAppender (GrpcLoggingInterceptor .class , Level .INFO );
177
+ TestMdcAppender testAppender = new TestMdcAppender ();
178
+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .INFO );
185
179
assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
186
180
List <byte []> byteLists = testAppender .getByteLists ();
187
181
assertThat (byteLists .size ()).isEqualTo (2 );
@@ -200,7 +194,8 @@ void testGrpc_receiveContent_logInfo_structured_log() throws IOException {
200
194
201
195
@ Test
202
196
void testHttpJson_receiveContent_logDebug () {
203
- TestAppender testAppender = setupTestLogger (HttpJsonLoggingInterceptor .class , Level .DEBUG );
197
+ TestAppender testAppender = new TestAppender ();
198
+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .DEBUG );
204
199
assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
205
200
assertThat (testAppender .events .size ()).isEqualTo (2 );
206
201
// logging event for request
@@ -230,23 +225,26 @@ void testHttpJson_receiveContent_logDebug() {
230
225
231
226
@ Test
232
227
void testHttpJson_receiveContent_logDebug_structured_log () throws IOException {
233
- TestMdcAppender testAppender = setupTestMdcAppender (HttpJsonLoggingInterceptor .class , Level .DEBUG );
228
+ TestMdcAppender testAppender = new TestMdcAppender ();
229
+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .DEBUG );
234
230
assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
235
231
List <byte []> byteLists = testAppender .getByteLists ();
236
232
assertThat (byteLists .size ()).isEqualTo (2 );
237
233
JsonNode request = objectMapper .readTree (byteLists .get (0 ));
238
- assertThat (request .get ("message " ).asText ()).isEqualTo ("Sending request" );
234
+ assertThat (request .get ("request.url " ).asText ()).isEqualTo (ENDPOINT );
239
235
assertThat (request .get ("request.payload" ).get ("content" ).asText ()).isEqualTo ("echo?" );
240
236
JsonNode response = objectMapper .readTree (byteLists .get (1 ));
241
- assertThat (response .get ("message " ).asText ()).isEqualTo ("Received response" );
237
+ assertThat (response .get ("rpcName " ).asText ()).isEqualTo (RPC_NAME );
242
238
assertThat (response .get ("response.payload" ).get ("content" ).asText ()).isEqualTo ("echo?" );
239
+ assertThat (response .get ("response.status" ).asText ()).isEqualTo ("200" );
243
240
244
241
testAppender .stop ();
245
242
}
246
243
247
244
@ Test
248
245
void testHttpJson_receiveContent_logInfo () {
249
- TestAppender testAppender = setupTestLogger (HttpJsonLoggingInterceptor .class , Level .INFO );
246
+ TestAppender testAppender = new TestAppender ();
247
+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .INFO );
250
248
assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
251
249
assertThat (testAppender .events .size ()).isEqualTo (2 );
252
250
// logging event for request
@@ -270,6 +268,24 @@ void testHttpJson_receiveContent_logInfo() {
270
268
testAppender .stop ();
271
269
}
272
270
271
+ @ Test
272
+ void testHttpJson_receiveContent_logInfo_structured_log () throws IOException {
273
+ TestMdcAppender testAppender = new TestMdcAppender ();
274
+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .INFO );
275
+ assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
276
+ List <byte []> byteLists = testAppender .getByteLists ();
277
+ assertThat (byteLists .size ()).isEqualTo (2 );
278
+ JsonNode request = objectMapper .readTree (byteLists .get (0 ));
279
+ assertThat (request .get ("rpcName" ).asText ()).isEqualTo (RPC_NAME );
280
+ assertThat (request .get ("rpcName" ).asText ()).isEqualTo (RPC_NAME );
281
+ JsonNode response = objectMapper .readTree (byteLists .get (1 ));
282
+ assertThat (response .get ("message" ).asText ()).isEqualTo ("Received response" );
283
+ assertThat (response .get ("rpcName" ).asText ()).isEqualTo (RPC_NAME );
284
+ assertThat (response .get ("response.status" ).asText ()).isEqualTo ("200" );
285
+
286
+ testAppender .stop ();
287
+ }
288
+
273
289
private String echoGrpc (String value ) {
274
290
EchoResponse response = grpcClient .echo (EchoRequest .newBuilder ().setContent (value ).build ());
275
291
return response .getContent ();
0 commit comments