Clean up verbose logging.

Change-Id: I6b01980e7145c4f8d25a5b50f620903f61a1b427
diff --git a/src/runtime.cc b/src/runtime.cc
index b41ebde..1304787 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -31,8 +31,7 @@
 Runtime* Runtime::instance_ = NULL;
 
 Runtime::Runtime()
-    : verbose_startup_(false),
-      is_zygote_(false),
+    : is_zygote_(false),
       default_stack_size_(Thread::kDefaultStackSize),
       monitor_list_(NULL),
       thread_list_(NULL),
@@ -341,7 +340,29 @@
       std::vector<std::string> verbose_options;
       Split(option.substr(strlen("-verbose:")).data(), ',', verbose_options);
       for (size_t i = 0; i < verbose_options.size(); ++i) {
-        parsed->verbose_.insert(verbose_options[i]);
+        if (verbose_options[i] == "class") {
+          gLogVerbosity.class_linker = true;
+        } else if (verbose_options[i] == "compiler") {
+          gLogVerbosity.compiler = true;
+        } else if (verbose_options[i] == "heap") {
+          gLogVerbosity.heap = true;
+        } else if (verbose_options[i] == "gc") {
+          gLogVerbosity.gc = true;
+        } else if (verbose_options[i] == "jdwp") {
+          gLogVerbosity.jdwp = true;
+        } else if (verbose_options[i] == "jni") {
+          gLogVerbosity.jni = true;
+        } else if (verbose_options[i] == "monitor") {
+          gLogVerbosity.monitor = true;
+        } else if (verbose_options[i] == "startup") {
+          gLogVerbosity.startup = true;
+        } else if (verbose_options[i] == "third-party-jni") {
+          gLogVerbosity.third_party_jni = true;
+        } else if (verbose_options[i] == "threads") {
+          gLogVerbosity.threads = true;
+        } else {
+          LOG(WARNING) << "Ignoring unknown -verbose option: " << verbose_options[i];
+        }
       }
     } else if (option.starts_with("-Xjnigreflimit:")) {
       parsed->jni_globals_max_ = ParseIntegerOrDie(option);
@@ -437,9 +458,7 @@
 }
 
 void Runtime::Start() {
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::Start entering";
-  }
+  VLOG(startup) << "Runtime::Start entering";
 
   CHECK(host_prefix_.empty()) << host_prefix_;
 
@@ -464,9 +483,7 @@
 
   Thread::Current()->GetJniEnv()->locals.AssertEmpty();
 
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::Start exiting";
-  }
+  VLOG(startup) << "Runtime::Start exiting";
 }
 
 void Runtime::DidForkFromZygote() {
@@ -486,9 +503,7 @@
 }
 
 void Runtime::StartDaemonThreads() {
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::StartDaemonThreads entering";
-  }
+  VLOG(startup) << "Runtime::StartDaemonThreads entering";
 
   Thread* self = Thread::Current();
 
@@ -502,9 +517,7 @@
   CHECK(mid != NULL);
   env->CallStaticVoidMethod(c.get(), mid);
 
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::StartDaemonThreads exiting";
-  }
+  VLOG(startup) << "Runtime::StartDaemonThreads exiting";
 }
 
 bool Runtime::IsStarted() const {
@@ -519,13 +532,10 @@
     LOG(ERROR) << "Failed to parse options";
     return false;
   }
-  verbose_startup_ = options->IsVerbose("startup");
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::Init -verbose:startup enabled";
-  }
+  VLOG(startup) << "Runtime::Init -verbose:startup enabled";
 
   SetJniGlobalsMax(options->jni_globals_max_);
-  Monitor::Init(options->IsVerbose("monitor"), options->lock_profiling_threshold_, options->hook_is_sensitive_thread_);
+  Monitor::Init(options->lock_profiling_threshold_, options->hook_is_sensitive_thread_);
 
   host_prefix_ = options->host_prefix_;
   boot_class_path_ = options->boot_class_path_;
@@ -542,12 +552,10 @@
   stack_trace_file_ = options->stack_trace_file_;
 
   monitor_list_ = new MonitorList;
-  thread_list_ = new ThreadList(options->IsVerbose("thread"));
+  thread_list_ = new ThreadList;
   intern_table_ = new InternTable;
 
-  Heap::Init(options->IsVerbose("heap"),
-             options->IsVerbose("gc"),
-             options->heap_initial_size_,
+  Heap::Init(options->heap_initial_size_,
              options->heap_maximum_size_,
              options->heap_growth_limit_,
              options->images_);
@@ -566,21 +574,16 @@
   Thread::Current()->SetState(Thread::kRunnable);
 
   CHECK_GE(Heap::GetSpaces().size(), 1U);
-  bool verbose_class = options->IsVerbose("class");
   class_linker_ = ((Heap::GetSpaces()[0]->IsImageSpace())
-                   ? ClassLinker::Create(verbose_class, intern_table_)
-                   : ClassLinker::Create(verbose_class, options->boot_class_path_, intern_table_));
+                   ? ClassLinker::Create(intern_table_)
+                   : ClassLinker::Create(options->boot_class_path_, intern_table_));
 
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::Init exiting";
-  }
+  VLOG(startup) << "Runtime::Init exiting";
   return true;
 }
 
 void Runtime::InitNativeMethods() {
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::InitNativeMethods entering";
-  }
+  VLOG(startup) << "Runtime::InitNativeMethods entering";
   Thread* self = Thread::Current();
   JNIEnv* env = self->GetJniEnv();
 
@@ -598,9 +601,7 @@
   // Most JNI libraries can just use System.loadLibrary, but libcore can't because it's
   // the library that implements System.loadLibrary!
   LoadJniLibrary(instance_->GetJavaVM(), "javacore");
-  if (IsVerboseStartup()) {
-    LOG(INFO) << "Runtime::InitNativeMethods exiting";
-  }
+  VLOG(startup) << "Runtime::InitNativeMethods exiting";
 }
 
 void Runtime::RegisterRuntimeNativeMethods(JNIEnv* env) {