diff --git a/linker/Android.bp b/linker/Android.bp
index 3b25d12..8e810d2 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -156,6 +156,7 @@
         "linker_dlwarning.cpp",
         "linker_cfi.cpp",
         "linker_config.cpp",
+        "linker_debug.cpp",
         "linker_gdb_support.cpp",
         "linker_globals.cpp",
         "linker_libc_support.c",
@@ -460,6 +461,7 @@
         // Parts of the linker that we're testing.
         "linker_block_allocator.cpp",
         "linker_config.cpp",
+        "linker_debug.cpp",
         "linker_test_globals.cpp",
         "linker_utils.cpp",
     ],
diff --git a/linker/linker_debug.cpp b/linker/linker_debug.cpp
new file mode 100644
index 0000000..b0aae79
--- /dev/null
+++ b/linker/linker_debug.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "linker_debug.h"
+
+#include <unistd.h>
+
+void linker_log_va_list(int prio __unused, const char* fmt, va_list ap) {
+#if LINKER_DEBUG_TO_LOG
+  async_safe_format_log_va_list(5 - prio, "linker", fmt, ap);
+#else
+  async_safe_format_fd_va_list(STDOUT_FILENO, fmt, ap);
+  write(STDOUT_FILENO, "\n", 1);
+#endif
+}
+
+void linker_log(int prio, const char* fmt, ...) {
+  va_list ap;
+  va_start(ap, fmt);
+  linker_log_va_list(prio, fmt, ap);
+  va_end(ap);
+}
diff --git a/linker/linker_debug.h b/linker/linker_debug.h
index 6031850..738ff6f 100644
--- a/linker/linker_debug.h
+++ b/linker/linker_debug.h
@@ -52,31 +52,33 @@
  * To enable/disable specific debug options, change the defines above
  *********************************************************************/
 
+#include <stdarg.h>
 #include <unistd.h>
 
 #include <async_safe/log.h>
 #include <async_safe/CHECK.h>
 
+#define LINKER_VERBOSITY_PRINT  -1
+#define LINKER_VERBOSITY_INFO   0
+#define LINKER_VERBOSITY_TRACE  1
+#define LINKER_VERBOSITY_DEBUG  2
+
 __LIBC_HIDDEN__ extern int g_ld_debug_verbosity;
 
-#if LINKER_DEBUG_TO_LOG
-#define _PRINTVF(v, x...) \
-    do { \
-      if (g_ld_debug_verbosity > (v)) async_safe_format_log(5-(v), "linker", x); \
-    } while (0)
-#else /* !LINKER_DEBUG_TO_LOG */
-#define _PRINTVF(v, x...) \
-    do { \
-      if (g_ld_debug_verbosity > (v)) { async_safe_format_fd(1, x); write(1, "\n", 1); } \
-    } while (0)
-#endif /* !LINKER_DEBUG_TO_LOG */
+__LIBC_HIDDEN__ void linker_log_va_list(int prio, const char* fmt, va_list ap);
+__LIBC_HIDDEN__ void linker_log(int prio, const char* fmt, ...) __printflike(2, 3);
 
-#define PRINT(x...)          _PRINTVF(-1, x)
-#define INFO(x...)           _PRINTVF(0, x)
-#define TRACE(x...)          _PRINTVF(1, x)
+#define _PRINTVF(v, x...) \
+    do { \
+      if (g_ld_debug_verbosity > (v)) linker_log((v), x); \
+    } while (0)
+
+#define PRINT(x...)          _PRINTVF(LINKER_VERBOSITY_PRINT, x)
+#define INFO(x...)           _PRINTVF(LINKER_VERBOSITY_INFO, x)
+#define TRACE(x...)          _PRINTVF(LINKER_VERBOSITY_TRACE, x)
 
 #if TRACE_DEBUG
-#define DEBUG(x...)          _PRINTVF(2, "DEBUG: " x)
+#define DEBUG(x...)          _PRINTVF(LINKER_VERBOSITY_DEBUG, "DEBUG: " x)
 #else /* !TRACE_DEBUG */
 #define DEBUG(x...)          do {} while (0)
 #endif /* TRACE_DEBUG */
