diff --git a/init/builtins.c b/init/builtins.c
index 06ef96d..eccda3f 100644
--- a/init/builtins.c
+++ b/init/builtins.c
@@ -663,7 +663,7 @@
 
 int do_loglevel(int nargs, char **args) {
     if (nargs == 2) {
-        log_set_level(atoi(args[1]));
+        klog_set_level(atoi(args[1]));
         return 0;
     }
     return -1;
diff --git a/init/init.c b/init/init.c
index ef42e02..53b8aa5 100755
--- a/init/init.c
+++ b/init/init.c
@@ -724,7 +724,7 @@
          * talk to the outside world.
          */
     open_devnull_stdio();
-    log_init();
+    klog_init();
     
     INFO("reading config file\n");
     init_parse_config_file("/init.rc");
diff --git a/init/log.h b/init/log.h
index 3d93965..4aac3df 100644
--- a/init/log.h
+++ b/init/log.h
@@ -17,17 +17,12 @@
 #ifndef _INIT_LOG_H_
 #define _INIT_LOG_H_
 
-void log_init(void);
-void log_set_level(int level);
-void log_close(void);
-void log_write(int level, const char *fmt, ...)
-    __attribute__ ((format(printf, 2, 3)));
+#include <cutils/klog.h>
 
-#define ERROR(x...)   log_write(3, "<3>init: " x)
-#define NOTICE(x...)  log_write(5, "<5>init: " x)
-#define INFO(x...)    log_write(6, "<6>init: " x)
+#define ERROR(x...)   KLOG_ERROR("init", x)
+#define NOTICE(x...)  KLOG_NOTICE("init", x)
+#define INFO(x...)    KLOG_INFO("init", x)
 
-#define LOG_DEFAULT_LEVEL  3  /* messages <= this level are logged */
 #define LOG_UEVENTS        0  /* log uevent messages if 1. verbose */
 
 #endif
diff --git a/init/ueventd.c b/init/ueventd.c
index 1328d19..ddf42be 100644
--- a/init/ueventd.c
+++ b/init/ueventd.c
@@ -47,7 +47,7 @@
     signal(SIGCHLD, SIG_IGN);
 
     open_devnull_stdio();
-    log_init();
+    klog_init();
 
     INFO("starting ueventd\n");
 
diff --git a/init/util.c b/init/util.c
index d8ec88e..bc24b08 100755
--- a/init/util.c
+++ b/init/util.c
@@ -37,42 +37,6 @@
 #include "list.h"
 #include "util.h"
 
-static int log_fd = -1;
-/* Inital log level before init.rc is parsed and this this is reset. */
-static int log_level = LOG_DEFAULT_LEVEL;
-
-
-void log_set_level(int level) {
-    log_level = level;
-}
-
-void log_init(void)
-{
-    static const char *name = "/dev/__kmsg__";
-    if (mknod(name, S_IFCHR | 0600, (1 << 8) | 11) == 0) {
-        log_fd = open(name, O_WRONLY);
-        fcntl(log_fd, F_SETFD, FD_CLOEXEC);
-        unlink(name);
-    }
-}
-
-#define LOG_BUF_MAX 512
-
-void log_write(int level, const char *fmt, ...)
-{
-    char buf[LOG_BUF_MAX];
-    va_list ap;
-    
-    if (level > log_level) return;
-    if (log_fd < 0) return;
-    
-    va_start(ap, fmt);
-    vsnprintf(buf, LOG_BUF_MAX, fmt, ap);
-    buf[LOG_BUF_MAX - 1] = 0;
-    va_end(ap);
-    write(log_fd, buf, strlen(buf));
-}
-
 /*
  * android_name_to_id - returns the integer uid/gid associated with the given
  * name, or -1U on error.
