about summary refs log tree commit diff
path: root/src/libstd/rt/logging.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/rt/logging.rs')
-rw-r--r--src/libstd/rt/logging.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libstd/rt/logging.rs b/src/libstd/rt/logging.rs
index fbe05267cf4..26072079bcc 100644
--- a/src/libstd/rt/logging.rs
+++ b/src/libstd/rt/logging.rs
@@ -12,6 +12,7 @@ use libc::{uintptr_t, exit, STDERR_FILENO};
 use option::{Some, None, Option};
 use rt::util::dumb_println;
 use rt::crate_map::{ModEntry, iter_crate_map};
+#[cfg(not(stage0))] use rt::crate_map::get_crate_map;
 use str::StrSlice;
 use str::raw::from_c_str;
 use u32;
@@ -211,6 +212,7 @@ impl Logger for StdErrLogger {
 /// Configure logging by traversing the crate map and setting the
 /// per-module global logging flags based on the logging spec
 #[fixed_stack_segment] #[inline(never)]
+#[cfg(stage0)]
 pub fn init(crate_map: *u8) {
     use os;
 
@@ -224,6 +226,22 @@ pub fn init(crate_map: *u8) {
         }
     }
 }
+#[cfg(not(stage0))]
+pub fn init() {
+    use os;
+
+    let crate_map = get_crate_map() as *u8;
+
+    let log_spec = os::getenv("RUST_LOG");
+    match log_spec {
+        Some(spec) => {
+            update_log_settings(crate_map, spec);
+        }
+        None => {
+            update_log_settings(crate_map, ~"");
+        }
+    }
+}
 
 #[fixed_stack_segment] #[inline(never)]
 pub fn console_on() { unsafe { rust_log_console_on() } }