Deduplicate setup_logging between all drivers
This will make it easier to change the way logging is done for all drivers. This also fixes the log category for a couple of drivers as well as makes failing to set the logger a fatal error. Only when a logger is already set is it impossible to set another logger.
This commit is contained in:
+7
-38
@@ -427,45 +427,14 @@ fn daemon_runner(redox_daemon: redox_daemon::Daemon) -> ! {
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
#[cfg(target_os = "redox")]
|
||||
pub fn setup_logging(level: log::LevelFilter, name: &str) {
|
||||
use redox_log::{OutputBuilder, RedoxLogger};
|
||||
|
||||
let mut logger = RedoxLogger::new().with_output(
|
||||
OutputBuilder::stderr()
|
||||
.with_filter(level)
|
||||
.with_ansi_escape_codes()
|
||||
.flush_on_newline(true)
|
||||
.build(),
|
||||
);
|
||||
|
||||
match OutputBuilder::in_redox_logging_scheme("disk", "pcie", format!("{name}.log")) {
|
||||
Ok(builder) => {
|
||||
logger = logger.with_output(builder.with_filter(level).flush_on_newline(true).build())
|
||||
}
|
||||
Err(err) => eprintln!("inputd: failed to create log: {}", err),
|
||||
}
|
||||
|
||||
match OutputBuilder::in_redox_logging_scheme("disk", "pcie", format!("{name}.ansi.log")) {
|
||||
Ok(builder) => {
|
||||
logger = logger.with_output(
|
||||
builder
|
||||
.with_filter(level)
|
||||
.with_ansi_escape_codes()
|
||||
.flush_on_newline(true)
|
||||
.build(),
|
||||
)
|
||||
}
|
||||
Err(err) => eprintln!("inputd: failed to create ANSI log: {}", err),
|
||||
}
|
||||
|
||||
logger.enable().unwrap();
|
||||
log::info!("inputd: enabled logger");
|
||||
}
|
||||
|
||||
pub fn main() {
|
||||
#[cfg(target_os = "redox")]
|
||||
setup_logging(log::LevelFilter::Trace, "inputd");
|
||||
common::setup_logging(
|
||||
"misc",
|
||||
"inputd",
|
||||
"inputd",
|
||||
log::LevelFilter::Trace,
|
||||
log::LevelFilter::Trace,
|
||||
);
|
||||
|
||||
let mut args = std::env::args().skip(1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user