Toggle-able, multi-level logging infrastructure. Should be able to write to log file or stdout/stderr.