Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

brokkr-utils::logging Rust

Structs

brokkr-utils::logging::BrokkrLogger

pub

Custom logger for the Brokkr application

Functions

brokkr-utils::logging::init

pub

#![allow(unused)]
fn main() {
fn init (level : & str) -> Result < () , SetLoggerError >
}

Initializes the Brokkr logging system with the specified log level.

Sets up a custom logger that handles structured logging with timestamps, log levels, and module paths. Supports multiple output formats and concurrent logging from multiple threads.

Parameters:

NameTypeDescription
level-String representation of the log level (“debug”, “info”, “warn”, “error”)

Returns:

  • Result<(), Box<dyn Error>> - Success/failure of logger initialization

Examples:

use brokkr_utils::logging;

logging::init("debug")?;
log::info!("Logger initialized successfully");
Source
#![allow(unused)]
fn main() {
pub fn init(level: &str) -> Result<(), SetLoggerError> {
    init_with_format(level, "text")
}
}

brokkr-utils::logging::init_with_format

pub

#![allow(unused)]
fn main() {
fn init_with_format (level : & str , format : & str) -> Result < () , SetLoggerError >
}

Initializes the Brokkr logging system with the specified log level and format.

Parameters:

NameTypeDescription
level-String representation of the log level (“debug”, “info”, “warn”, “error”)
format-Log output format (“text” for human-readable, “json” for structured JSON)

Returns:

  • Result<(), SetLoggerError> - Success/failure of logger initialization
Source
#![allow(unused)]
fn main() {
pub fn init_with_format(level: &str, format: &str) -> Result<(), SetLoggerError> {
    let level_filter = str_to_level_filter(level);
    let use_json = format.eq_ignore_ascii_case("json");

    INIT.get_or_init(|| {
        log::set_logger(&LOGGER)
            .map(|()| log::set_max_level(LevelFilter::Trace))
            .expect("Failed to set logger");
    });

    JSON_FORMAT.store(use_json, Ordering::Relaxed);
    CURRENT_LEVEL.store(level_filter as usize, Ordering::Relaxed);
    log::set_max_level(level_filter);
    Ok(())
}
}

brokkr-utils::logging::update_log_level

pub

#![allow(unused)]
fn main() {
fn update_log_level (level : & str) -> Result < () , String >
}

Updates the current log level.

Parameters:

NameTypeDescription
level-A string slice that holds the new desired log level.

Returns:

  • Ok(()) if the log level was successfully updated. * Err(String) if there was an error updating the log level.

Examples:

use brokkr_logger;

    brokkr_logger::init("info").expect("Failed to initialize logger");
    info!("This will be logged");

    brokkr_logger::update_log_level("warn").expect("Failed to update log level");
    info!("This will not be logged");
    warn!("But this will be logged");
Source
#![allow(unused)]
fn main() {
pub fn update_log_level(level: &str) -> Result<(), String> {
    let new_level = str_to_level_filter(level);
    CURRENT_LEVEL.store(new_level as usize, Ordering::Relaxed);
    log::set_max_level(new_level);
    Ok(())
}
}

brokkr-utils::logging::str_to_level_filter

private

#![allow(unused)]
fn main() {
fn str_to_level_filter (level : & str) -> LevelFilter
}
Source
#![allow(unused)]
fn main() {
fn str_to_level_filter(level: &str) -> LevelFilter {
    match level.to_lowercase().as_str() {
        "off" => LevelFilter::Off,
        "error" => LevelFilter::Error,
        "warn" => LevelFilter::Warn,
        "info" => LevelFilter::Info,
        "debug" => LevelFilter::Debug,
        "trace" => LevelFilter::Trace,
        _ => LevelFilter::Info,
    }
}
}

brokkr-utils::logging::level_filter_from_u8

private

#![allow(unused)]
fn main() {
fn level_filter_from_u8 (v : u8) -> LevelFilter
}
Source
#![allow(unused)]
fn main() {
fn level_filter_from_u8(v: u8) -> LevelFilter {
    match v {
        0 => LevelFilter::Off,
        1 => LevelFilter::Error,
        2 => LevelFilter::Warn,
        3 => LevelFilter::Info,
        4 => LevelFilter::Debug,
        5 => LevelFilter::Trace,
        _ => LevelFilter::Off,
    }
}
}