Logging
This commit is contained in:
parent
8fbf7b5a5a
commit
b3954e3533
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -585,9 +585,9 @@ dependencies = [
|
||||||
"crossbeam-queue",
|
"crossbeam-queue",
|
||||||
"limine",
|
"limine",
|
||||||
"linked_list_allocator",
|
"linked_list_allocator",
|
||||||
|
"log",
|
||||||
"slab",
|
"slab",
|
||||||
"spin 0.9.4",
|
"spin 0.9.4",
|
||||||
"tracing",
|
|
||||||
"uart_16550",
|
"uart_16550",
|
||||||
"versioning",
|
"versioning",
|
||||||
"x86_64",
|
"x86_64",
|
||||||
|
|
|
@ -8,7 +8,7 @@ linked_list_allocator = "0.9"
|
||||||
slab = { version = "0.4", default-features = false }
|
slab = { version = "0.4", default-features = false }
|
||||||
spin = "0.9"
|
spin = "0.9"
|
||||||
versioning = { git = "https://git.ablecorp.us/able/aos_userland" }
|
versioning = { git = "https://git.ablecorp.us/able/aos_userland" }
|
||||||
tracing = { version = "0.1", default-features = false, features = ["attributes"] }
|
log = "0.4"
|
||||||
|
|
||||||
[dependencies.crossbeam-queue]
|
[dependencies.crossbeam-queue]
|
||||||
version = "0.3"
|
version = "0.3"
|
||||||
|
|
|
@ -13,10 +13,9 @@ unsafe extern "C" fn _kernel_start() -> ! {
|
||||||
static HDHM_REQ: LimineHhdmRequest = LimineHhdmRequest::new(0);
|
static HDHM_REQ: LimineHhdmRequest = LimineHhdmRequest::new(0);
|
||||||
static MMAP_REQ: LimineMmapRequest = LimineMmapRequest::new(0);
|
static MMAP_REQ: LimineMmapRequest = LimineMmapRequest::new(0);
|
||||||
|
|
||||||
let _ = serial_fmt(format_args!(
|
SERIAL_CONSOLE.lock().init();
|
||||||
"Initialising AbleOS Kernel {}\r\n",
|
crate::logger::init().expect("failed to set logger");
|
||||||
crate::VERSION
|
log::info!("Initialising AKern {}", crate::VERSION);
|
||||||
));
|
|
||||||
|
|
||||||
memory::init_pt(VirtAddr::new(
|
memory::init_pt(VirtAddr::new(
|
||||||
HDHM_REQ
|
HDHM_REQ
|
||||||
|
@ -35,7 +34,6 @@ unsafe extern "C" fn _kernel_start() -> ! {
|
||||||
);
|
);
|
||||||
|
|
||||||
allocator::init_alloc().expect("tried to initialise allocator");
|
allocator::init_alloc().expect("tried to initialise allocator");
|
||||||
SERIAL_CONSOLE.lock().init();
|
|
||||||
|
|
||||||
crate::kmain::kmain()
|
crate::kmain::kmain()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
// TODO: Tracing Subscriber serial print implementation
|
|
|
@ -7,7 +7,7 @@ extern crate alloc;
|
||||||
|
|
||||||
pub mod allocator;
|
pub mod allocator;
|
||||||
pub mod arch;
|
pub mod arch;
|
||||||
pub mod debug;
|
pub mod logger;
|
||||||
pub mod kmain;
|
pub mod kmain;
|
||||||
pub mod task;
|
pub mod task;
|
||||||
|
|
||||||
|
|
33
kernel/src/logger.rs
Normal file
33
kernel/src/logger.rs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
use log::{Level, SetLoggerError};
|
||||||
|
|
||||||
|
pub fn init() -> Result<(), SetLoggerError> {
|
||||||
|
log::set_logger(&crate::logger::Logger)?;
|
||||||
|
log::set_max_level(log::LevelFilter::Trace);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Logger;
|
||||||
|
impl log::Log for Logger {
|
||||||
|
fn enabled(&self, metadata: &log::Metadata) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
fn log(&self, record: &log::Record) {
|
||||||
|
let lvl = record.level();
|
||||||
|
crate::arch::serial_fmt(format_args!(
|
||||||
|
"\x1b[38;5;{}m{lvl}\x1b[0m [{}]: {}\r\n",
|
||||||
|
match lvl {
|
||||||
|
Level::Error => "160",
|
||||||
|
Level::Warn => "172",
|
||||||
|
Level::Info => "47",
|
||||||
|
Level::Debug => "25",
|
||||||
|
Level::Trace => "103",
|
||||||
|
},
|
||||||
|
record.module_path().unwrap_or_default(),
|
||||||
|
record.args(),
|
||||||
|
))
|
||||||
|
.expect("write to serial console");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn flush(&self) {}
|
||||||
|
}
|
Loading…
Reference in a new issue