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(())
}