diff --git a/Cargo.lock b/Cargo.lock index a35f309c3d..516c895c52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,7 +12,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", "spin", @@ -32,7 +31,6 @@ dependencies = [ "parking_lot 0.11.2", "plain", "redox-daemon", - "redox-log", "redox_syscall 0.5.3", "rustc-hash", "serde_json", @@ -51,7 +49,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox-scheme", "redox_event", "redox_syscall 0.5.3", @@ -286,6 +283,8 @@ name = "common" version = "0.1.0" dependencies = [ "libredox 0.1.3", + "log", + "redox-log", "redox_syscall 0.5.3", ] @@ -590,7 +589,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox-scheme", "redox_event", "redox_syscall 0.5.3", @@ -606,7 +604,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", "spin", @@ -627,11 +624,11 @@ name = "inputd" version = "0.1.0" dependencies = [ "anyhow", + "common", "libredox 0.1.3", "log", "orbclient", "redox-daemon", - "redox-log", "redox_syscall 0.5.3", "spin", ] @@ -789,7 +786,6 @@ dependencies = [ "partitionlib", "pcid", "redox-daemon", - "redox-log", "redox-scheme", "redox_event", "redox_syscall 0.5.3", @@ -938,7 +934,6 @@ dependencies = [ "pci_types", "plain", "redox-daemon", - "redox-log", "redox_syscall 0.5.3", "serde", "serde_json", @@ -1012,11 +1007,11 @@ name = "ps2d" version = "0.1.0" dependencies = [ "bitflags 1.3.2", + "common", "libredox 0.1.3", "log", "orbclient", "redox-daemon", - "redox-log", "redox_syscall 0.5.3", ] @@ -1176,7 +1171,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", ] @@ -1192,7 +1186,6 @@ dependencies = [ "log", "pcid", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", ] @@ -1218,7 +1211,6 @@ dependencies = [ "libredox 0.1.3", "log", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", "spin", @@ -1544,9 +1536,9 @@ name = "usbhidd" version = "0.1.0" dependencies = [ "bitflags 2.6.0", + "common", "log", "orbclient", - "redox-log", "redox_syscall 0.5.3", "rehid", "xhcid", @@ -1556,8 +1548,8 @@ dependencies = [ name = "usbhubd" version = "0.1.0" dependencies = [ + "common", "log", - "redox-log", "redox_syscall 0.5.3", "xhcid", ] @@ -1654,7 +1646,6 @@ dependencies = [ "partitionlib", "pcid", "redox-daemon", - "redox-log", "redox-scheme", "redox_syscall 0.5.3", "spin", @@ -1674,7 +1665,6 @@ dependencies = [ "libredox 0.1.3", "log", "pcid", - "redox-log", "redox_event", "redox_syscall 0.5.3", "static_assertions", @@ -1914,7 +1904,6 @@ dependencies = [ "pcid", "plain", "redox-daemon", - "redox-log", "redox_event", "redox_syscall 0.5.3", "serde", diff --git a/acpid/Cargo.toml b/acpid/Cargo.toml index 4e03f757e7..0ba5a37b00 100644 --- a/acpid/Cargo.toml +++ b/acpid/Cargo.toml @@ -14,7 +14,6 @@ num-traits = "0.2" parking_lot = "0.11.1" plain = "0.2.3" redox-daemon = "0.1" -redox-log = "0.1.1" redox_syscall = "0.5" rustc-hash = "1.1.0" thiserror = "1" diff --git a/acpid/src/main.rs b/acpid/src/main.rs index 1aebe40a97..4c7024522f 100644 --- a/acpid/src/main.rs +++ b/acpid/src/main.rs @@ -8,7 +8,6 @@ use std::os::unix::fs::OpenOptionsExt; use std::os::unix::io::{AsRawFd, FromRawFd, RawFd}; use std::sync::Arc; -use redox_log::RedoxLogger; use syscall::scheme::SchemeMut; use syscall::data::{Event, Packet}; @@ -31,55 +30,14 @@ fn monotonic() -> (u64, u64) { (timespec.tv_sec as u64, timespec.tv_nsec as u64) } -fn setup_logging() -> Option<&'static RedoxLogger> { - use redox_log::OutputBuilder; - - #[allow(unused_mut)] - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("misc", "acpi", "acpid.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Warn) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create acpid.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("misc", "acpi", "acpid.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Warn) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create acpid.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("acpid: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("acpid: failed to set default logger: {}", error); - None - } - } -} - fn daemon(daemon: redox_daemon::Daemon) -> ! { - setup_logging(); + common::setup_logging( + "misc", + "acpi", + "acpid", + log::LevelFilter::Info, + log::LevelFilter::Warn, + ); let rxsdt_raw_data: Arc<[u8]> = std::fs::read("/scheme/kernel.acpi/rxsdt") .expect("acpid: failed to read `/scheme/kernel.acpi/rxsdt`") diff --git a/audio/ac97d/Cargo.toml b/audio/ac97d/Cargo.toml index 143a127079..2e97f0a1aa 100644 --- a/audio/ac97d/Cargo.toml +++ b/audio/ac97d/Cargo.toml @@ -9,7 +9,6 @@ common = { path = "../../common" } libredox = "0.1.3" log = "0.4" redox-daemon = "0.1" -redox-log = "0.1.2" redox_event = "0.4.1" redox_syscall = "0.5" spin = "0.9" diff --git a/audio/ac97d/src/main.rs b/audio/ac97d/src/main.rs index 9066acc52a..05cd1a0df9 100644 --- a/audio/ac97d/src/main.rs +++ b/audio/ac97d/src/main.rs @@ -15,55 +15,10 @@ use std::usize; use event::{user_data, EventQueue}; use libredox::flag; use pcid_interface::{PciBar, PciFunctionHandle}; -use redox_log::{OutputBuilder, RedoxLogger}; use syscall::{EventFlags, Packet, SchemeBlockMut}; pub mod device; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "ac97.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ac97d: failed to create ac97.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "ac97.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ac97d: failed to create ac97.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("ac97d: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("ac97d: failed to set default logger: {}", error); - None - } - } -} - fn main() { let pcid_handle = PciFunctionHandle::connect_default().expect("ac97d: failed to setup channel to pcid"); @@ -81,7 +36,13 @@ fn main() { // Daemonize redox_daemon::Daemon::new(move |daemon| { - let _logger_ref = setup_logging(); + common::setup_logging( + "audio", + "pcie", + "ac97", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); common::acquire_port_io_rights().expect("ac97d: failed to set I/O privilege level to Ring 3"); diff --git a/audio/ihdad/Cargo.toml b/audio/ihdad/Cargo.toml index c431a9cb2e..4bd093ad88 100644 --- a/audio/ihdad/Cargo.toml +++ b/audio/ihdad/Cargo.toml @@ -8,7 +8,6 @@ bitflags = "2" libredox = "0.1.3" log = "0.4" redox-daemon = "0.1" -redox-log = "0.1.2" redox_event = "0.4.1" redox_syscall = "0.5" spin = "0.9" diff --git a/audio/ihdad/src/main.rs b/audio/ihdad/src/main.rs index 755a5bcc4e..9fd2c779fb 100755 --- a/audio/ihdad/src/main.rs +++ b/audio/ihdad/src/main.rs @@ -20,7 +20,6 @@ use pcid_interface::{MsiSetFeatureInfo, PciFunctionHandle, PciFeature, PciFeatur #[cfg(target_arch = "x86_64")] use pcid_interface::irq_helpers::allocate_single_interrupt_vector_for_msi; use pcid_interface::irq_helpers::read_bsp_apic_id; -use redox_log::{OutputBuilder, RedoxLogger}; pub mod hda; @@ -31,50 +30,6 @@ pub mod hda; 82801H ICH8 8086:284B */ -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Debug) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "ihda.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ihdad: failed to create ihda.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "ihda.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ihdad: failed to create ihda.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("ihdad: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("ihdad: failed to set default logger: {}", error); - None - } - } -} - #[cfg(target_arch = "x86_64")] fn get_int_method(pcid_handle: &mut PciFunctionHandle) -> File { let pci_config = pcid_handle.config(); @@ -133,7 +88,13 @@ fn get_int_method(pcid_handle: &mut PciFunctionHandle) -> File { } fn daemon(daemon: redox_daemon::Daemon) -> ! { - let _logger_ref = setup_logging(); + common::setup_logging( + "audio", + "pcie", + "ihda", + log::LevelFilter::Debug, + log::LevelFilter::Info, + ); let mut pcid_handle = PciFunctionHandle::connect_default().expect("ihdad: failed to setup channel to pcid"); diff --git a/audio/sb16d/Cargo.toml b/audio/sb16d/Cargo.toml index 84a7357bec..29ff243ab8 100644 --- a/audio/sb16d/Cargo.toml +++ b/audio/sb16d/Cargo.toml @@ -9,7 +9,6 @@ common = { path = "../../common" } libredox = "0.1.3" log = "0.4" redox-daemon = "0.1" -redox-log = "0.1.2" redox_event = "0.4.1" redox_syscall = "0.5" spin = "0.9" diff --git a/audio/sb16d/src/main.rs b/audio/sb16d/src/main.rs index 002c707974..ff7333a626 100644 --- a/audio/sb16d/src/main.rs +++ b/audio/sb16d/src/main.rs @@ -6,54 +6,9 @@ use libredox::{flag, Fd}; use syscall::{Packet, SchemeBlockMut}; use event::{user_data, EventQueue}; -use redox_log::{OutputBuilder, RedoxLogger}; pub mod device; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "sb16.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("sb16d: failed to create sb16.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("audio", "pcie", "sb16.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("sb16d: failed to create sb16.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("sb16d: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("sb16d: failed to set default logger: {}", error); - None - } - } -} - fn main() { let mut args = env::args().skip(1); @@ -64,7 +19,13 @@ fn main() { // Daemonize redox_daemon::Daemon::new(move |daemon| { - let _logger_ref = setup_logging(); + common::setup_logging( + "audio", + "pcie", + "sb16", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); common::acquire_port_io_rights().expect("sb16d: failed to acquire port IO rights"); diff --git a/common/Cargo.toml b/common/Cargo.toml index c1a072fa5d..50437c7d4b 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -9,4 +9,6 @@ license = "MIT" [dependencies] libredox = "0.1.3" +log = "0.4" redox_syscall = "0.5" +redox-log = "0.1.2" diff --git a/common/src/lib.rs b/common/src/lib.rs index 7403ce4793..969f9d4422 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -6,8 +6,11 @@ use libredox::{errno::EINVAL, error::*, Fd}; use syscall::PAGE_SIZE; pub mod dma; +mod logger; pub mod sgl; +pub use logger::setup_logging; + #[derive(Clone, Copy, Debug)] pub enum MemoryType { Writeback, diff --git a/common/src/logger.rs b/common/src/logger.rs new file mode 100644 index 0000000000..4f39f253b9 --- /dev/null +++ b/common/src/logger.rs @@ -0,0 +1,49 @@ +use redox_log::{OutputBuilder, RedoxLogger}; + +#[cfg_attr(not(target_os = "redox"), allow(unused_variables, unused_mut))] +pub fn setup_logging( + category: &str, + subcategory: &str, + logfile_base: &str, + output_level: log::LevelFilter, + file_level: log::LevelFilter, +) { + let mut logger = RedoxLogger::new().with_output( + OutputBuilder::stderr() + .with_filter(output_level) // limit global output to important info + .with_ansi_escape_codes() + .flush_on_newline(true) + .build(), + ); + + #[cfg(target_os = "redox")] + match OutputBuilder::in_redox_logging_scheme( + category, + subcategory, + format!("{logfile_base}.log"), + ) { + Ok(b) => { + logger = logger.with_output(b.with_filter(file_level).flush_on_newline(true).build()) + } + Err(error) => eprintln!("Failed to create {logfile_base}.log: {}", error), + } + + #[cfg(target_os = "redox")] + match OutputBuilder::in_redox_logging_scheme( + category, + subcategory, + format!("{logfile_base}.ansi.log"), + ) { + Ok(b) => { + logger = logger.with_output( + b.with_filter(file_level) + .with_ansi_escape_codes() + .flush_on_newline(true) + .build(), + ) + } + Err(error) => eprintln!("Failed to create {logfile_base}.ansi.log: {}", error), + } + + logger.enable().expect("failed to set default logger"); +} diff --git a/graphics/virtio-gpud/src/main.rs b/graphics/virtio-gpud/src/main.rs index da7deaa3a5..7ad1e13e08 100644 --- a/graphics/virtio-gpud/src/main.rs +++ b/graphics/virtio-gpud/src/main.rs @@ -466,7 +466,12 @@ fn daemon_runner(redox_daemon: redox_daemon::Daemon) -> ! { } pub fn main() { - #[cfg(target_os = "redox")] - virtio_core::utils::setup_logging(log::LevelFilter::Trace, "virtio-gpud"); + common::setup_logging( + "misc", + "pcie", + "virtio-gpud", + log::LevelFilter::Trace, + log::LevelFilter::Trace, + ); redox_daemon::Daemon::new(daemon_runner).expect("virtio-core: failed to daemonize"); } diff --git a/inputd/Cargo.toml b/inputd/Cargo.toml index 9b900edc13..0ba28069f3 100644 --- a/inputd/Cargo.toml +++ b/inputd/Cargo.toml @@ -8,8 +8,9 @@ authors = ["Anhad Singh "] anyhow = "1.0.71" log = "0.4.19" redox-daemon = "0.1.2" -redox-log = "0.1.1" redox_syscall = "0.5" orbclient = "0.3.27" spin = "0.9.8" libredox = "0.1.3" + +common = { path = "../common" } diff --git a/inputd/src/main.rs b/inputd/src/main.rs index db4ac50e83..870ce8a432 100644 --- a/inputd/src/main.rs +++ b/inputd/src/main.rs @@ -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); diff --git a/net/rtl8139d/Cargo.toml b/net/rtl8139d/Cargo.toml index 432b562cb9..cd6ed71f17 100644 --- a/net/rtl8139d/Cargo.toml +++ b/net/rtl8139d/Cargo.toml @@ -10,7 +10,6 @@ log = "0.4" redox_event = "0.4.1" redox_syscall = "0.5" redox-daemon = "0.1" -redox-log = "0.1" common = { path = "../../common" } driver-network = { path = "../driver-network" } diff --git a/net/rtl8139d/src/main.rs b/net/rtl8139d/src/main.rs index 4c3d8d0073..4f85e1b96f 100644 --- a/net/rtl8139d/src/main.rs +++ b/net/rtl8139d/src/main.rs @@ -18,55 +18,10 @@ use pcid_interface::{ MsiSetFeatureInfo, PciFeature, PciFeatureInfo, PciFunctionHandle, SetFeatureInfo, SubdriverArguments, }; -use redox_log::{OutputBuilder, RedoxLogger}; use syscall::EventFlags; pub mod device; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("net", "pcie", "rtl8139.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create rtl8139.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("net", "pcie", "rtl8139.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create rtl8139.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("rtl8139d: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("rtl8139d: failed to set default logger: {}", error); - None - } - } -} - use std::ops::{Add, Div, Rem}; pub fn div_round_up(a: T, b: T) -> T where @@ -208,7 +163,13 @@ fn find_bar(pci_config: &SubdriverArguments) -> Option<(usize, usize)> { } fn daemon(daemon: redox_daemon::Daemon) -> ! { - let _logger_ref = setup_logging(); + common::setup_logging( + "net", + "pcie", + "rtl8139", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); let mut pcid_handle = PciFunctionHandle::connect_default().expect("rtl8139d: failed to setup channel to pcid"); diff --git a/net/rtl8168d/Cargo.toml b/net/rtl8168d/Cargo.toml index 54a91855dd..a8aca0c7c2 100644 --- a/net/rtl8168d/Cargo.toml +++ b/net/rtl8168d/Cargo.toml @@ -10,7 +10,6 @@ log = "0.4" redox_event = "0.4.1" redox_syscall = "0.5" redox-daemon = "0.1" -redox-log = "0.1" common = { path = "../../common" } driver-network = { path = "../driver-network" } diff --git a/net/rtl8168d/src/main.rs b/net/rtl8168d/src/main.rs index 7ba886d4c5..cdccf38c7b 100644 --- a/net/rtl8168d/src/main.rs +++ b/net/rtl8168d/src/main.rs @@ -13,55 +13,10 @@ use pcid_interface::{MsiSetFeatureInfo, PciFunctionHandle, PciFeature, PciFeatur use pcid_interface::irq_helpers::allocate_single_interrupt_vector_for_msi; use pcid_interface::irq_helpers::read_bsp_apic_id; use pcid_interface::msi::{MsixInfo, MsixTableEntry}; -use redox_log::{RedoxLogger, OutputBuilder}; use syscall::EventFlags; pub mod device; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("net", "pcie", "rtl8168.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create rtl8168.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("net", "pcie", "rtl8168.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create rtl8168.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("rtl8168d: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("rtl8168d: failed to set default logger: {}", error); - None - } - } -} - use std::ops::{Add, Div, Rem}; pub fn div_round_up(a: T, b: T) -> T where @@ -203,7 +158,13 @@ fn find_bar(pci_config: &SubdriverArguments) -> Option<(usize, usize)> { } fn daemon(daemon: redox_daemon::Daemon) -> ! { - let _logger_ref = setup_logging(); + common::setup_logging( + "net", + "pcie", + "rtl8168", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); let mut pcid_handle = PciFunctionHandle::connect_default().expect("rtl8168d: failed to setup channel to pcid"); diff --git a/net/virtio-netd/src/main.rs b/net/virtio-netd/src/main.rs index e4ad270df9..b054534a7a 100644 --- a/net/virtio-netd/src/main.rs +++ b/net/virtio-netd/src/main.rs @@ -120,7 +120,12 @@ fn daemon_runner(redox_daemon: redox_daemon::Daemon) -> ! { } pub fn main() { - #[cfg(target_os = "redox")] - virtio_core::utils::setup_logging(log::LevelFilter::Trace, "virtio-netd"); + common::setup_logging( + "net", + "pcie", + "virtio-netd", + log::LevelFilter::Trace, + log::LevelFilter::Trace, + ); redox_daemon::Daemon::new(daemon_runner).expect("virtio-core: failed to daemonize"); } diff --git a/pcid/Cargo.toml b/pcid/Cargo.toml index a0b6fcc152..09416ac0bd 100644 --- a/pcid/Cargo.toml +++ b/pcid/Cargo.toml @@ -22,7 +22,6 @@ paw = "1.0" pci_types = "0.10" plain = "0.2" redox-daemon = "0.1" -redox-log = "0.1" redox_syscall = "0.5" serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/pcid/src/main.rs b/pcid/src/main.rs index ca435e1635..f8d72fc910 100644 --- a/pcid/src/main.rs +++ b/pcid/src/main.rs @@ -10,7 +10,6 @@ use pci_types::{ Bar as TyBar, CommandRegister, EndpointHeader, HeaderType, PciAddress, PciHeader as TyPciHeader, PciPciBridgeHeader, }; -use redox_log::{OutputBuilder, RedoxLogger}; use structopt::StructOpt; use crate::cfg_access::Pcie; @@ -166,57 +165,6 @@ fn handle_parsed_header( } } -fn setup_logging(verbosity: u8) -> Option<&'static RedoxLogger> { - let log_level = match verbosity { - 0 => log::LevelFilter::Info, - 1 => log::LevelFilter::Debug, - _ => log::LevelFilter::Trace, - }; - let mut logger = RedoxLogger::new().with_output( - OutputBuilder::stderr() - .with_ansi_escape_codes() - .with_filter(log_level) - .flush_on_newline(true) - .build(), - ); - - #[cfg(target_os = "redox")] - { - match OutputBuilder::in_redox_logging_scheme("bus", "pci", "pcid.log") { - Ok(b) => { - logger = logger.with_output( - b.with_filter(log::LevelFilter::Trace) - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("pcid: failed to open pcid.log"), - } - match OutputBuilder::in_redox_logging_scheme("bus", "pci", "pcid.ansi.log") { - Ok(b) => { - logger = logger.with_output( - b.with_filter(log::LevelFilter::Trace) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("pcid: failed to open pcid.ansi.log"), - } - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("pcid: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("pcid: failed to set default logger: {}", error); - None - } - } -} - #[paw::main] fn main(args: Args) { let mut config = Config::default(); @@ -246,7 +194,13 @@ fn main(args: Args) { } } - let _logger_ref = setup_logging(args.verbose); + let log_level = match args.verbose { + 0 => log::LevelFilter::Info, + 1 => log::LevelFilter::Debug, + _ => log::LevelFilter::Trace, + }; + + common::setup_logging("bus", "pci", "pcid", log_level, log::LevelFilter::Trace); redox_daemon::Daemon::new(move |daemon| main_inner(config, daemon)).unwrap(); } diff --git a/ps2d/Cargo.toml b/ps2d/Cargo.toml index 013830a661..78f9dbe207 100644 --- a/ps2d/Cargo.toml +++ b/ps2d/Cargo.toml @@ -9,5 +9,6 @@ log = "0.4" orbclient = "0.3.27" redox_syscall = "0.5" redox-daemon = "0.1" -redox-log = "0.1.1" libredox = "0.1.3" + +common = { path = "../common" } diff --git a/ps2d/src/main.rs b/ps2d/src/main.rs index 15f3537903..2b08b8fb97 100644 --- a/ps2d/src/main.rs +++ b/ps2d/src/main.rs @@ -12,7 +12,6 @@ use std::os::unix::fs::OpenOptionsExt; use std::os::unix::io::AsRawFd; use log::info; -use redox_log::{OutputBuilder, RedoxLogger}; use syscall::call::iopl; use crate::state::Ps2d; @@ -23,52 +22,14 @@ mod state; mod vm; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("misc", "ps2", "ps2.log") { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ps2d: failed to create ps2.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("misc", "ps2", "ps2.ansi.log") { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ps2d: failed to create ps2.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("ps2d: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("ps2d: failed to set default logger: {}", error); - None - } - } -} - fn daemon(daemon: redox_daemon::Daemon) -> ! { - setup_logging(); + common::setup_logging( + "misc", + "ps2", + "ps2", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); unsafe { iopl(3).expect("ps2d: failed to get I/O permission"); diff --git a/storage/ahcid/Cargo.toml b/storage/ahcid/Cargo.toml index 0f9793e19a..5186da6460 100644 --- a/storage/ahcid/Cargo.toml +++ b/storage/ahcid/Cargo.toml @@ -8,7 +8,6 @@ bitflags = "1.2" byteorder = "1.2" log = "0.4" redox-daemon = "0.1" -redox-log = "0.1" redox_syscall = { version = "0.5", features = ["std"] } common = { path = "../../common" } diff --git a/storage/ahcid/src/main.rs b/storage/ahcid/src/main.rs index a3a8107729..e380d997c2 100644 --- a/storage/ahcid/src/main.rs +++ b/storage/ahcid/src/main.rs @@ -14,7 +14,6 @@ use redox_scheme::{RequestKind, Response, SignalBehavior, Socket, V2}; use syscall::error::{Error, ENODEV}; use log::{error, info}; -use redox_log::{OutputBuilder, RedoxLogger}; use syscall::{EAGAIN, EWOULDBLOCK}; use crate::scheme::DiskScheme; @@ -22,50 +21,6 @@ use crate::scheme::DiskScheme; pub mod ahci; pub mod scheme; -fn setup_logging(name: &str) -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.log", name)) { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ahcid: failed to create log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.ansi.log", name)) { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ahcid: failed to create ansi log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("ahcid: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("ahcid: failed to set default logger: {}", error); - None - } - } -} - fn main() { redox_daemon::Daemon::new(daemon).expect("ahcid: failed to daemonize"); } @@ -80,7 +35,13 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! { let irq = pci_config.func.legacy_interrupt_line.expect("ahcid: no legacy interrupts supported"); - let _logger_ref = setup_logging(&name); + common::setup_logging( + "disk", + "pcie", + &name, + log::LevelFilter::Info, + log::LevelFilter::Info, + ); info!(" + AHCI {}", pci_config.func.display()); diff --git a/storage/ided/Cargo.toml b/storage/ided/Cargo.toml index e590d22e97..3a0f34d5f7 100644 --- a/storage/ided/Cargo.toml +++ b/storage/ided/Cargo.toml @@ -10,7 +10,6 @@ libredox = "0.1.3" log = "0.4" pcid = { path = "../../pcid" } redox-daemon = "0.1" -redox-log = "0.1" redox_syscall = { version = "0.5", features = ["std"] } redox-scheme = { git = "https://gitlab.redox-os.org/redox-os/redox-scheme.git" } redox_event = "0.4" diff --git a/storage/ided/src/main.rs b/storage/ided/src/main.rs index c69ac46d18..28719cfddd 100644 --- a/storage/ided/src/main.rs +++ b/storage/ided/src/main.rs @@ -3,7 +3,6 @@ use event::{EventFlags, RawEventQueue}; use libredox::flag; use log::{error, info}; use pcid_interface::{PciBar, PciFunctionHandle}; -use redox_log::{OutputBuilder, RedoxLogger}; use redox_scheme::{RequestKind, Response, SignalBehavior, Socket, V2}; use std::{ fs::File, @@ -25,50 +24,6 @@ use crate::{ pub mod ide; pub mod scheme; -fn setup_logging(name: &str) -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.log", name)) { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ided: failed to create log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.ansi.log", name)) { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("ided: failed to create ansi log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("ided: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("ided: failed to set default logger: {}", error); - None - } - } -} - fn main() { redox_daemon::Daemon::new(daemon).expect("ided: failed to daemonize"); } @@ -82,7 +37,13 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! { let mut name = pci_config.func.name(); name.push_str("_ide"); - let _logger_ref = setup_logging(&name); + common::setup_logging( + "disk", + "pcie", + &name, + log::LevelFilter::Info, + log::LevelFilter::Info, + ); info!("IDE PCI CONFIG: {:?}", pci_config); diff --git a/storage/nvmed/Cargo.toml b/storage/nvmed/Cargo.toml index b4fe28398b..1a00ca727a 100644 --- a/storage/nvmed/Cargo.toml +++ b/storage/nvmed/Cargo.toml @@ -10,7 +10,6 @@ crossbeam-channel = "0.4" futures = "0.3" log = "0.4" redox-daemon = "0.1" -redox-log = "0.1" redox_syscall = { version = "0.5", features = ["std"] } redox-scheme = { git = "https://gitlab.redox-os.org/redox-os/redox-scheme.git" } redox_event = "0.4" diff --git a/storage/nvmed/src/main.rs b/storage/nvmed/src/main.rs index f3bc114106..28ff062e47 100644 --- a/storage/nvmed/src/main.rs +++ b/storage/nvmed/src/main.rs @@ -16,7 +16,6 @@ use syscall::{ Event, Mmio, Packet, Result, SchemeBlockMut, PAGE_SIZE, }; -use redox_log::{OutputBuilder, RedoxLogger}; use self::nvme::{InterruptMethod, InterruptSources, Nvme}; use self::scheme::DiskScheme; @@ -151,50 +150,6 @@ fn get_int_method( } } -fn setup_logging(name: &str) -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.log", name)) { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("nvmed: failed to create log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("disk", "pcie", &format!("{}.ansi.log", name)) { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("nvmed: failed to create ansi log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("nvmed: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("nvmed: failed to set default logger: {}", error); - None - } - } -} - fn main() { redox_daemon::Daemon::new(daemon).expect("nvmed: failed to daemonize"); } @@ -205,7 +160,13 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! { let scheme_name = format!("disk.{}-nvme", pci_config.func.name()); - let _logger_ref = setup_logging(&scheme_name); + common::setup_logging( + "disk", + "pcie", + &scheme_name, + log::LevelFilter::Info, + log::LevelFilter::Info, + ); log::debug!("NVME PCI CONFIG: {:?}", pci_config); diff --git a/storage/virtio-blkd/Cargo.toml b/storage/virtio-blkd/Cargo.toml index 6ac79495d2..c9d09ad78d 100644 --- a/storage/virtio-blkd/Cargo.toml +++ b/storage/virtio-blkd/Cargo.toml @@ -13,7 +13,6 @@ futures = { version = "0.3.28", features = ["executor"] } spin = "*" redox-daemon = "0.1" -redox-log = "0.1" redox_syscall = { version = "0.5", features = ["std"] } redox-scheme = { git = "https://gitlab.redox-os.org/redox-os/redox-scheme.git" } partitionlib = { git = "https://gitlab.redox-os.org/redox-os/partitionlib.git" } diff --git a/storage/virtio-blkd/src/main.rs b/storage/virtio-blkd/src/main.rs index 8d819db570..7fa906f017 100644 --- a/storage/virtio-blkd/src/main.rs +++ b/storage/virtio-blkd/src/main.rs @@ -35,8 +35,13 @@ pub enum Error { } pub fn main() -> anyhow::Result<()> { - #[cfg(target_os = "redox")] - virtio_core::utils::setup_logging(log::LevelFilter::Trace, "virtio-blkd"); + common::setup_logging( + "disk", + "pcie", + "virtio-blkd", + log::LevelFilter::Trace, + log::LevelFilter::Trace, + ); redox_daemon::Daemon::new(daemon_runner).expect("virtio-core: failed to daemonize"); } diff --git a/usbhidd/Cargo.toml b/usbhidd/Cargo.toml index 54a80e1e2f..52a7b01ce9 100644 --- a/usbhidd/Cargo.toml +++ b/usbhidd/Cargo.toml @@ -11,7 +11,8 @@ license = "MIT" bitflags = "2" log = "0.4" orbclient = "0.3.47" -redox-log = "0.1" redox_syscall = "0.5" rehid = { git = "https://gitlab.redox-os.org/redox-os/rehid.git" } xhcid = { path = "../xhcid" } + +common = { path = "../common" } diff --git a/usbhidd/src/main.rs b/usbhidd/src/main.rs index 0551cd0953..d63840715f 100644 --- a/usbhidd/src/main.rs +++ b/usbhidd/src/main.rs @@ -4,7 +4,6 @@ use std::fs::File; use std::io::{Read, Write}; use orbclient::KeyEvent as OrbKeyEvent; -use redox_log::{OutputBuilder, RedoxLogger}; use rehid::{ report_desc::{self, ReportTy, REPORT_DESC_TY}, report_handler::ReportHandler, @@ -15,53 +14,6 @@ use xhcid_interface::{ConfigureEndpointsReq, DevDesc, EndpDirection, EndpointTy, mod keymap; mod reqs; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new().with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build(), - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "device", "hid.log") { - Ok(b) => { - logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("Failed to create hid.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "device", "hid.ansi.log") { - Ok(b) => { - logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("Failed to create hid.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("usbhidd: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("usbhidd: failed to set default logger: {}", error); - None - } - } -} - fn send_key_event( display: &mut File, usage_page: u32, @@ -214,7 +166,13 @@ fn send_key_event( } fn main() { - let _logger_ref = setup_logging(); + common::setup_logging( + "usb", + "device", + "hid", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); let mut args = env::args().skip(1); diff --git a/usbhubd/Cargo.toml b/usbhubd/Cargo.toml index abc8eb8abc..708234e823 100644 --- a/usbhubd/Cargo.toml +++ b/usbhubd/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT" [dependencies] log = "0.4" -redox-log = "0.1" redox_syscall = "0.5" xhcid = { path = "../xhcid" } + +common = { path = "../common" } diff --git a/usbhubd/src/main.rs b/usbhubd/src/main.rs index 21cccadd14..a3f5521310 100644 --- a/usbhubd/src/main.rs +++ b/usbhubd/src/main.rs @@ -3,58 +3,16 @@ use std::env; use std::fs::File; use std::io::{Read, Write}; -use redox_log::{OutputBuilder, RedoxLogger}; use xhcid_interface::{plain, usb, ConfigureEndpointsReq, DevDesc, DeviceReqData, EndpDirection, EndpointTy, PortReqRecipient, PortReqTy, XhciClientHandle}; -fn setup_logging() -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new().with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build(), - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "device", "hub.log") { - Ok(b) => { - logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Info) - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("Failed to create hub.log: {}", error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "device", "hub.ansi.log") { - Ok(b) => { - logger = logger.with_output( - b.with_filter(log::LevelFilter::Info) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build(), - ) - } - Err(error) => eprintln!("Failed to create hub.ansi.log: {}", error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("usbhubd: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("usbhubd: failed to set default logger: {}", error); - None - } - } -} - fn main() { - let _logger_ref = setup_logging(); + common::setup_logging( + "usb", + "device", + "hub", + log::LevelFilter::Info, + log::LevelFilter::Info, + ); let mut args = env::args().skip(1); diff --git a/virtio-core/Cargo.toml b/virtio-core/Cargo.toml index 6568a5cc10..4a5630b53a 100644 --- a/virtio-core/Cargo.toml +++ b/virtio-core/Cargo.toml @@ -14,7 +14,6 @@ thiserror = "1.0.40" futures = { version = "0.3.28", features = ["executor"] } crossbeam-queue = "0.3.8" -redox-log = "0.1" redox_event = "0.4.1" common = { path = "../common" } diff --git a/virtio-core/src/utils.rs b/virtio-core/src/utils.rs index 07214248e5..76d8ff7eb7 100644 --- a/virtio-core/src/utils.rs +++ b/virtio-core/src/utils.rs @@ -78,39 +78,3 @@ pub const fn align(val: usize, align: usize) -> usize { pub const fn align_down(addr: usize) -> usize { addr & !(syscall::PAGE_SIZE - 1) } - -#[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!("virtio-core::utils: 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!("virtio-core::utils: failed to create ANSI log: {}", err), - } - - logger.enable().unwrap(); - log::info!("virtio-core::utils: enabled logger"); -} diff --git a/xhcid/Cargo.toml b/xhcid/Cargo.toml index 94e09eb0b3..820d1e5291 100644 --- a/xhcid/Cargo.toml +++ b/xhcid/Cargo.toml @@ -21,7 +21,6 @@ lazy_static = "1.4" log = "0.4" redox-daemon = "0.1" redox_event = "0.4.1" -redox-log = "0.1" redox_syscall = "0.5" serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/xhcid/src/main.rs b/xhcid/src/main.rs index 6248e4264f..972884994a 100644 --- a/xhcid/src/main.rs +++ b/xhcid/src/main.rs @@ -19,7 +19,6 @@ use pcid_interface::irq_helpers::read_bsp_apic_id; use pcid_interface::msi::MsixTableEntry; use event::{Event, RawEventQueue}; -use redox_log::{RedoxLogger, OutputBuilder}; use syscall::data::Packet; use syscall::error::EWOULDBLOCK; use syscall::flag::EventFlags; @@ -40,50 +39,6 @@ async fn handle_packet(hci: Arc, packet: Packet) -> Packet { todo!() } -fn setup_logging(name: &str) -> Option<&'static RedoxLogger> { - let mut logger = RedoxLogger::new() - .with_output( - OutputBuilder::stderr() - .with_filter(log::LevelFilter::Info) // limit global output to important info - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ); - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "host", &format!("{}.log", name)) { - Ok(b) => logger = logger.with_output( - // TODO: Add a configuration file for this - b.with_filter(log::LevelFilter::Debug) - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create {}.log: {}", name, error), - } - - #[cfg(target_os = "redox")] - match OutputBuilder::in_redox_logging_scheme("usb", "host", &format!("{}.ansi.log", name)) { - Ok(b) => logger = logger.with_output( - b.with_filter(log::LevelFilter::Debug) - .with_ansi_escape_codes() - .flush_on_newline(true) - .build() - ), - Err(error) => eprintln!("Failed to create {}.ansi.log: {}", name, error), - } - - match logger.enable() { - Ok(logger_ref) => { - eprintln!("xhcid: enabled logger"); - Some(logger_ref) - } - Err(error) => { - eprintln!("xhcid: failed to set default logger: {}", error); - None - } - } -} - #[cfg(target_arch = "x86_64")] fn get_int_method(pcid_handle: &mut PciFunctionHandle, bar0_address: usize) -> (Option, InterruptMethod) { let pci_config = pcid_handle.config(); @@ -191,7 +146,13 @@ fn daemon(daemon: redox_daemon::Daemon) -> ! { let mut name = pci_config.func.name(); name.push_str("_xhci"); - let _logger_ref = setup_logging(&name); + common::setup_logging( + "usb", + "host", + &name, + log::LevelFilter::Info, + log::LevelFilter::Debug, + ); log::debug!("XHCI PCI CONFIG: {:?}", pci_config);