Overhaul logging system in runtime

See https://github.com/graydon/rust/wiki/Logging-vision

The runtime logging categories are now treated in the same way as
modules in compiled code. Each domain now has a log_lvl that can be
used to restrict the logging from that domain (will be used to allow
logging to be restricted to a single domain).

Features dropped (can be brought back to life if there is interest):
  - Logger indentation
  - Multiple categories per log statement
  - I possibly broke some of the color code -- it confuses me
This commit is contained in:
Marijn Haverbeke
2011-04-19 12:21:57 +02:00
parent 6511d471ba
commit 880be6a940
24 changed files with 463 additions and 637 deletions

View File

@@ -82,6 +82,8 @@ rust_start(uintptr_t main_fn, rust_crate const *crate, int argc,
if (crate->abi_tag != ABI_X86_RUSTBOOT_CDECL)
update_log_settings(crate_map, getenv("RUST_LOG"));
else
update_log_settings(NULL, getenv("RUST_LOG"));
rust_srv *srv = new rust_srv();
rust_kernel *kernel = new rust_kernel(srv);
kernel->start();
@@ -89,14 +91,13 @@ rust_start(uintptr_t main_fn, rust_crate const *crate, int argc,
rust_dom *dom = handle->referent();
command_line_args *args = new (dom) command_line_args(dom, argc, argv);
DLOG(dom, rust_log::DOM, "startup: %d args in 0x%" PRIxPTR,
DLOG(dom, dom, "startup: %d args in 0x%" PRIxPTR,
args->argc, (uintptr_t)args->args);
for (int i = 0; i < args->argc; i++) {
DLOG(dom, rust_log::DOM,
"startup: arg[%d] = '%s'", i, args->argv[i]);
DLOG(dom, dom, "startup: arg[%d] = '%s'", i, args->argv[i]);
}
if (dom->_log.is_tracing(rust_log::DWARF)) {
if (log_rt_dwarf) {
rust_crate_reader create_reader(dom, crate);
}