diff --git a/http2/hpack/http2_hpack_constants_test.cc b/http2/hpack/http2_hpack_constants_test.cc
index 54cb9a3..b266554 100644
--- a/http2/hpack/http2_hpack_constants_test.cc
+++ b/http2/hpack/http2_hpack_constants_test.cc
@@ -4,10 +4,11 @@
 
 #include "net/third_party/quiche/src/http2/hpack/http2_hpack_constants.h"
 
+#include <sstream>
+
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "net/third_party/quiche/src/http2/platform/api/http2_logging.h"
-#include "net/third_party/quiche/src/http2/platform/api/http2_mock_log.h"
 
 namespace http2 {
 namespace test {
@@ -30,40 +31,34 @@
 
 TEST(HpackEntryTypeTest, OutputHpackEntryType) {
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "kIndexedHeader");
-    HTTP2_LOG(INFO) << HpackEntryType::kIndexedHeader;
+    std::stringstream log;
+    log << HpackEntryType::kIndexedHeader;
+    EXPECT_EQ("kIndexedHeader", log.str());
   }
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "kDynamicTableSizeUpdate");
-    HTTP2_LOG(INFO) << HpackEntryType::kDynamicTableSizeUpdate;
+    std::stringstream log;
+    log << HpackEntryType::kDynamicTableSizeUpdate;
+    EXPECT_EQ("kDynamicTableSizeUpdate", log.str());
   }
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "kIndexedLiteralHeader");
-    HTTP2_LOG(INFO) << HpackEntryType::kIndexedLiteralHeader;
+    std::stringstream log;
+    log << HpackEntryType::kIndexedLiteralHeader;
+    EXPECT_EQ("kIndexedLiteralHeader", log.str());
   }
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "kUnindexedLiteralHeader");
-    HTTP2_LOG(INFO) << HpackEntryType::kUnindexedLiteralHeader;
+    std::stringstream log;
+    log << HpackEntryType::kUnindexedLiteralHeader;
+    EXPECT_EQ("kUnindexedLiteralHeader", log.str());
   }
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "kNeverIndexedLiteralHeader");
-    HTTP2_LOG(INFO) << HpackEntryType::kNeverIndexedLiteralHeader;
+    std::stringstream log;
+    log << HpackEntryType::kNeverIndexedLiteralHeader;
+    EXPECT_EQ("kNeverIndexedLiteralHeader", log.str());
   }
   {
-    CREATE_HTTP2_MOCK_LOG(log);
-    log.StartCapturingLogs();
-    EXPECT_HTTP2_LOG_CALL_CONTAINS(log, INFO, "UnknownHpackEntryType(1234321)");
-    HTTP2_LOG(INFO) << static_cast<HpackEntryType>(1234321);
+    std::stringstream log;
+    log << static_cast<HpackEntryType>(1234321);
+    EXPECT_EQ("UnknownHpackEntryType(1234321)", log.str());
   }
 }
 
diff --git a/http2/platform/api/http2_mock_log.h b/http2/platform/api/http2_mock_log.h
deleted file mode 100644
index 3d16837..0000000
--- a/http2/platform/api/http2_mock_log.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_HTTP2_PLATFORM_API_HTTP2_MOCK_LOG_H_
-#define QUICHE_HTTP2_PLATFORM_API_HTTP2_MOCK_LOG_H_
-
-#include "net/http2/platform/impl/http2_mock_log_impl.h"
-
-using Http2MockLog = Http2MockLogImpl;
-#define CREATE_HTTP2_MOCK_LOG(log) CREATE_HTTP2_MOCK_LOG_IMPL(log)
-
-#define EXPECT_HTTP2_LOG_CALL(log) EXPECT_HTTP2_LOG_CALL_IMPL(log)
-
-#define EXPECT_HTTP2_LOG_CALL_CONTAINS(log, level, content) \
-  EXPECT_HTTP2_LOG_CALL_CONTAINS_IMPL(log, level, content)
-
-#endif  // QUICHE_HTTP2_PLATFORM_API_HTTP2_MOCK_LOG_H_
