Skip to main content

Module log

Module log 

Source
Expand description

Minimal logging traits and a small Logger with level filtering. Minimal logging primitives for no_std kernels.

This module is intentionally small:

  • You provide a crate::log::LogSink that decides where bytes go (serial/VGA/hypervisor console/etc.).
  • This crate provides a crate::log::Logger that decides how bytes are formatted and implements level filtering.
  • All APIs are allocation-free and usable in early boot.

§Typical usage

use os_dev_toolkit::log::{Level, LogSink, Logger};

struct Sink;
impl LogSink for Sink {
    fn write_str(&mut self, s: &str) {
        let _ = s;
    }
}

fn demo() {
    let mut sink = Sink;
    let mut logger = Logger::new(&mut sink, Level::Info);
    os_dev_toolkit::kinfo!(logger, "boot ok");
    os_dev_toolkit::kdebug!(logger, "this will be filtered out");
}

Structs§

Logger
A tiny logger with level filtering.
RingLog
A fixed-capacity in-memory log sink.

Enums§

Level
Log level used by Logger for filtering.

Traits§

LogSink
A minimal sink for kernel/OS logging.