22
33import java .io .IOException ;
44import java .util .Collections ;
5+ import java .util .List ;
56
67import org .slf4j .Logger ;
78import org .slf4j .LoggerFactory ;
1314import org .springframework .web .util .ContentCachingRequestWrapper ;
1415import org .springframework .web .util .ContentCachingResponseWrapper ;
1516
17+ import io .apitally .common .ApitallyAppender ;
1618import io .apitally .common .ApitallyClient ;
1719import io .apitally .common .ConsumerRegistry ;
1820import io .apitally .common .RequestLogger ;
1921import io .apitally .common .dto .Consumer ;
2022import io .apitally .common .dto .Header ;
23+ import io .apitally .common .dto .LogRecord ;
2124import io .apitally .common .dto .Request ;
2225import io .apitally .common .dto .Response ;
26+
2327import jakarta .servlet .FilterChain ;
2428import jakarta .servlet .ServletException ;
2529import jakarta .servlet .ServletOutputStream ;
@@ -65,9 +69,16 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
6569 ? new CountingResponseWrapper (response )
6670 : null ;
6771
72+ final boolean shouldCaptureLogs = client .requestLogger .getConfig ().isEnabled ()
73+ && client .requestLogger .getConfig ().isLogCaptureEnabled ();
74+
6875 Exception exception = null ;
6976 final long startTime = System .currentTimeMillis ();
7077
78+ if (shouldCaptureLogs ) {
79+ ApitallyAppender .startCapture ();
80+ }
81+
7182 try {
7283 filterChain .doFilter (
7384 cachingRequest != null ? cachingRequest : request ,
@@ -76,6 +87,7 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
7687 exception = e ;
7788 throw e ;
7889 } finally {
90+ final List <LogRecord > capturedLogs = shouldCaptureLogs ? ApitallyAppender .endCapture () : null ;
7991 final long responseTimeInMillis = System .currentTimeMillis () - startTime ;
8092 final String path = (String ) request .getAttribute (HandlerMapping .BEST_MATCHING_PATTERN_ATTRIBUTE );
8193
@@ -126,7 +138,8 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
126138 request .getRequestURL ().toString (), requestHeaders , requestSize , requestBody ),
127139 new Response (response .getStatus (), responseTimeInMillis / 1000.0 , responseHeaders ,
128140 responseSize , responseBody ),
129- exception );
141+ exception ,
142+ capturedLogs );
130143 }
131144
132145 // Add validation error to counter
0 commit comments