@@ -184,6 +184,35 @@ public void testLoggerException() {
184184 testLogAppender .stop ();
185185 }
186186
187+ @ Test
188+ public void testLoggerUnwrappedException () {
189+
190+ TestLogAppender testLogAppender = new TestLogAppender ();
191+ ch .qos .logback .classic .Logger logger = (ch .qos .logback .classic .Logger ) LoggerFactory
192+ .getLogger (Logger .ROOT_LOGGER_NAME );
193+ logger .addAppender (testLogAppender );
194+ testLogAppender .start ();
195+
196+ final InternalLoggerMiddleware loggerMiddleware = InternalLoggerMiddleware
197+ .of ((request , topic ) -> new TestLogger (logger ));
198+
199+ ApiHttpRequest request = new ApiHttpRequest (ApiHttpMethod .GET , URI .create ("https://api.commercetools.com/" ),
200+ new ApiHttpHeaders (), null );
201+ CompletableFuture <ApiHttpResponse <byte []>> f = new CompletableFuture <>();
202+ ApiHttpResponse <byte []> response = new ApiHttpResponse <>(400 , new ApiHttpHeaders (),
203+ "" .getBytes (StandardCharsets .UTF_8 ));
204+ f .completeExceptionally (new ApiHttpException (response .getStatusCode (), response .getBodyAsString ().orElse ("" ),
205+ response .getHeaders (), response ));
206+ loggerMiddleware .invoke (request , apiHttpRequest -> f );
207+
208+ Assertions .assertThat (testLogAppender .loggingEvents ).hasSize (1 );
209+ Assertions .assertThat (testLogAppender .loggingEvents .get (0 ).getLevel ()).isEqualTo (Level .ERROR );
210+ Assertions .assertThat (testLogAppender .loggingEvents .get (0 ).getFormattedMessage ())
211+ .matches ("GET https://api.commercetools.com/ 400 \\ d+ - -" );
212+
213+ testLogAppender .stop ();
214+ }
215+
187216 static class TestLogAppender extends AppenderBase <ILoggingEvent > {
188217 ArrayList <ILoggingEvent > loggingEvents = new ArrayList <>();
189218
0 commit comments