nonblocking-logger 0.3.0

A high-performance library with format string support
Documentation
use nonblocking_logger::{LogLevel, Logger};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let logger = Logger::from_env().stdout();

    println!("Current log level: {:?}", logger.level());
    println!("Set RUST_LOG=debug to see debug messages");
    println!("Set RUST_LOG=myapp=debug,server=info for module-specific levels");
    println!();

    logger.trace("This is a trace message")?;
    logger.debug("This is a debug message")?;
    logger.info("This is an info message")?;
    logger.warning("This is a warning message")?;
    logger.error("This is an error message")?;

    let app_logger = Logger::with_level(LogLevel::Debug).stdout();
    let server_logger = Logger::with_level(LogLevel::Info).stderr();

    println!("\nModule-specific logging:");
    app_logger.debug("App debug message")?;
    server_logger.info("Server info message")?;

    Ok(())
}