mirror of
https://github.com/square/okhttp.git
synced 2025-08-08 23:42:08 +03:00
Add Cache events to LoggingEventListener (#6020)
This commit is contained in:
@@ -155,6 +155,22 @@ class LoggingEventListener private constructor(
|
|||||||
logWithTime("canceled")
|
logWithTime("canceled")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun satisfactionFailure(call: Call, response: Response) {
|
||||||
|
logWithTime("satisfactionFailure: $response")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun cacheHit(call: Call, response: Response) {
|
||||||
|
logWithTime("cacheHit: $response")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun cacheMiss(call: Call) {
|
||||||
|
logWithTime("cacheMiss")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun cacheConditionalHit(call: Call, cachedResponse: Response) {
|
||||||
|
logWithTime("cacheConditionalHit: $cachedResponse")
|
||||||
|
}
|
||||||
|
|
||||||
private fun logWithTime(message: String) {
|
private fun logWithTime(message: String) {
|
||||||
val timeMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs)
|
val timeMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs)
|
||||||
logger.log("[$timeMs ms] $message")
|
logger.log("[$timeMs ms] $message")
|
||||||
|
@@ -17,9 +17,12 @@ package okhttp3.logging;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
import okhttp3.Call;
|
||||||
|
import okhttp3.EventListener;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Protocol;
|
||||||
import okhttp3.TestUtil;
|
import okhttp3.TestUtil;
|
||||||
import okhttp3.testing.PlatformRule;
|
import okhttp3.testing.PlatformRule;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
@@ -240,6 +243,27 @@ public final class LoggingEventListenerTest {
|
|||||||
.assertNoMoreLogs();
|
.assertNoMoreLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCacheEvents() {
|
||||||
|
Request request = new Request.Builder().url(url).build();
|
||||||
|
Call call = client.newCall(request);
|
||||||
|
Response response = new Response.Builder().request(request).code(200).message("").protocol(HTTP_2).build();
|
||||||
|
|
||||||
|
EventListener listener = loggingEventListenerFactory.create(call);
|
||||||
|
|
||||||
|
listener.cacheConditionalHit(call, response);
|
||||||
|
listener.cacheHit(call, response);
|
||||||
|
listener.cacheMiss(call);
|
||||||
|
listener.satisfactionFailure(call, response);
|
||||||
|
|
||||||
|
logRecorder
|
||||||
|
.assertLogMatch("cacheConditionalHit: Response\\{protocol=h2, code=200, message=, url=" + url + "}")
|
||||||
|
.assertLogMatch("cacheHit: Response\\{protocol=h2, code=200, message=, url=" + url + "}")
|
||||||
|
.assertLogMatch("cacheMiss")
|
||||||
|
.assertLogMatch("satisfactionFailure: Response\\{protocol=h2, code=200, message=, url=" + url + "}")
|
||||||
|
.assertNoMoreLogs();
|
||||||
|
}
|
||||||
|
|
||||||
private Request.Builder request() {
|
private Request.Builder request() {
|
||||||
return new Request.Builder().url(url);
|
return new Request.Builder().url(url);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user