2020
2121import ch .qos .logback .classic .Level ;
2222import ch .qos .logback .classic .spi .ILoggingEvent ;
23+ import ch .qos .logback .core .AppenderBase ;
2324import com .fasterxml .jackson .databind .JsonNode ;
2425import com .fasterxml .jackson .databind .ObjectMapper ;
2526import com .google .api .gax .grpc .GrpcLoggingInterceptor ;
@@ -57,22 +58,11 @@ public class ITLogging1x {
5758
5859 private static final Logger CLASS_LOGGER = LoggerFactory .getLogger (ITLogging1x .class );
5960
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 ) {
7162 appender .start ();
7263 Logger logger = LoggerFactory .getLogger (clazz );
7364 ((ch .qos .logback .classic .Logger ) logger ).setLevel (level );
7465 ((ch .qos .logback .classic .Logger ) logger ).addAppender (appender );
75- return appender ;
7666 }
7767
7868 @ BeforeAll
@@ -101,7 +91,8 @@ void test() {
10191
10292 @ Test
10393 void testGrpc_receiveContent_logDebug () {
104- TestAppender testAppender = setupTestLogger (GrpcLoggingInterceptor .class , Level .DEBUG );
94+ TestAppender testAppender = new TestAppender ();
95+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .DEBUG );
10596 assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
10697
10798 assertThat (testAppender .events .size ()).isEqualTo (2 );
@@ -137,7 +128,8 @@ void testGrpc_receiveContent_logDebug() {
137128
138129 @ Test
139130 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 );
141133 assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
142134 List <byte []> byteLists = testAppender .getByteLists ();
143135 assertThat (byteLists .size ()).isEqualTo (2 );
@@ -153,7 +145,8 @@ void testGrpc_receiveContent_logDebug_structured_log() throws IOException {
153145
154146 @ Test
155147 void testGrpc_receiveContent_logInfo () {
156- TestAppender testAppender = setupTestLogger (GrpcLoggingInterceptor .class , Level .INFO );
148+ TestAppender testAppender = new TestAppender ();
149+ setupTestLogger (testAppender , GrpcLoggingInterceptor .class , Level .INFO );
157150 assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
158151
159152 assertThat (testAppender .events .size ()).isEqualTo (2 );
@@ -181,7 +174,8 @@ void testGrpc_receiveContent_logInfo() {
181174
182175 @ Test
183176 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 );
185179 assertThat (echoGrpc (ECHO_STRING )).isEqualTo (ECHO_STRING );
186180 List <byte []> byteLists = testAppender .getByteLists ();
187181 assertThat (byteLists .size ()).isEqualTo (2 );
@@ -200,7 +194,8 @@ void testGrpc_receiveContent_logInfo_structured_log() throws IOException {
200194
201195 @ Test
202196 void testHttpJson_receiveContent_logDebug () {
203- TestAppender testAppender = setupTestLogger (HttpJsonLoggingInterceptor .class , Level .DEBUG );
197+ TestAppender testAppender = new TestAppender ();
198+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .DEBUG );
204199 assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
205200 assertThat (testAppender .events .size ()).isEqualTo (2 );
206201 // logging event for request
@@ -230,23 +225,26 @@ void testHttpJson_receiveContent_logDebug() {
230225
231226 @ Test
232227 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 );
234230 assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
235231 List <byte []> byteLists = testAppender .getByteLists ();
236232 assertThat (byteLists .size ()).isEqualTo (2 );
237233 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 );
239235 assertThat (request .get ("request.payload" ).get ("content" ).asText ()).isEqualTo ("echo?" );
240236 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 );
242238 assertThat (response .get ("response.payload" ).get ("content" ).asText ()).isEqualTo ("echo?" );
239+ assertThat (response .get ("response.status" ).asText ()).isEqualTo ("200" );
243240
244241 testAppender .stop ();
245242 }
246243
247244 @ Test
248245 void testHttpJson_receiveContent_logInfo () {
249- TestAppender testAppender = setupTestLogger (HttpJsonLoggingInterceptor .class , Level .INFO );
246+ TestAppender testAppender = new TestAppender ();
247+ setupTestLogger (testAppender , HttpJsonLoggingInterceptor .class , Level .INFO );
250248 assertThat (echoHttpJson (ECHO_STRING )).isEqualTo (ECHO_STRING );
251249 assertThat (testAppender .events .size ()).isEqualTo (2 );
252250 // logging event for request
@@ -270,6 +268,24 @@ void testHttpJson_receiveContent_logInfo() {
270268 testAppender .stop ();
271269 }
272270
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+
273289 private String echoGrpc (String value ) {
274290 EchoResponse response = grpcClient .echo (EchoRequest .newBuilder ().setContent (value ).build ());
275291 return response .getContent ();
0 commit comments