diff --git a/tests/pointer/1.0/default/Graph.cpp b/tests/pointer/1.0/default/Graph.cpp
index 5aa2243..9852407 100644
--- a/tests/pointer/1.0/default/Graph.cpp
+++ b/tests/pointer/1.0/default/Graph.cpp
@@ -1,5 +1,7 @@
+#define LOG_TAG "hidl_test"
+
 #include "Graph.h"
-#include <android-base/logging.h>
+#include <android/log.h>
 #include <hidl-test/PointerHelper.h>
 
 #define PUSH_ERROR_IF(__cond__) if(__cond__) { errors.push_back(std::to_string(__LINE__) + ": " + #__cond__); }
diff --git a/tests/pointer/1.0/default/Pointer.cpp b/tests/pointer/1.0/default/Pointer.cpp
index d7cd772..2b4a323 100644
--- a/tests/pointer/1.0/default/Pointer.cpp
+++ b/tests/pointer/1.0/default/Pointer.cpp
@@ -1,4 +1,7 @@
+#define LOG_TAG "hidl_test"
+
 #include "Pointer.h"
+#include <android/log.h>
 
 namespace android {
 namespace hardware {
@@ -7,6 +10,14 @@
 namespace V1_0 {
 namespace implementation {
 
+Return<int32_t> Pointer::getErrors() {
+    if(!errors.empty()) {
+        for(const auto& e : errors)
+            ALOGW("SERVER(Pointer) error: %s", e.c_str());
+    }
+    return errors.size();
+}
+
 IPointer* HIDL_FETCH_IPointer(const char* /* name */) {
     return new Pointer();
 }
diff --git a/tests/pointer/1.0/default/Pointer.h b/tests/pointer/1.0/default/Pointer.h
index 87b0f56..d6e3e48 100644
--- a/tests/pointer/1.0/default/Pointer.h
+++ b/tests/pointer/1.0/default/Pointer.h
@@ -2,7 +2,6 @@
 #define ANDROID_HARDWARE_TESTS_POINTER_V1_0_POINTER_H
 
 #include <android/hardware/tests/pointer/1.0/IPointer.h>
-#include <android-base/logging.h>
 #include <hidl/Status.h>
 
 #include <hidl/MQDescriptor.h>
@@ -28,13 +27,7 @@
 private:
     std::vector<std::string> errors;
 public:
-    Return<int32_t> getErrors() {
-        if(!errors.empty()) {
-            for(const auto& e : errors)
-                ALOGW("SERVER(Pointer) error: %s", e.c_str());
-        }
-        return errors.size();
-    }
+    Return<int32_t> getErrors() override;
     Return<void> foo1(const IPointer::Sam& s, IPointer::Sam const* s_ptr) override {
         PUSH_ERROR_IF(!(&s == s_ptr));
         return Void();
@@ -71,9 +64,6 @@
         return Void();
     }
     Return<void> foo9(::android::hardware::hidl_string const* str_ref) override {
-        ALOGI("SERVER(Pointer) foo9 got string @ %p (size = %ld) \"%s\"",
-            str_ref->c_str(),
-            (unsigned long) str_ref->size(), str_ref->c_str());
         PUSH_ERROR_IF(!(strcmp(str_ref->c_str(), "meowmeowmeow") == 0));
         return Void();
     }
diff --git a/tests/pointer/1.0/default/lib/PointerHelper.cpp b/tests/pointer/1.0/default/lib/PointerHelper.cpp
index ed7d49a..3bc82c2 100644
--- a/tests/pointer/1.0/default/lib/PointerHelper.cpp
+++ b/tests/pointer/1.0/default/lib/PointerHelper.cpp
@@ -1,5 +1,5 @@
 #define LOG_TAG "hidl_test"
-#include <android-base/logging.h>
+#include <android/log.h>
 #include "PointerHelper.h"
 namespace android {
 
