youlog

Crates.ioyoulog
lib.rsyoulog
version0.1.2
sourcesrc
created_at2023-08-30 06:31:52.595187
updated_at2023-10-10 22:49:21.696123
descriptionA logging crate where you bring your own logging logic
homepage
repositoryhttps://github.com/sometimes-youwin/youlog.git
max_upload_size
id958744
size33,975
Timothy Yuen (you-win)

documentation

https://docs.rs/youlog

README

youlog

A thin logging implementation for Rust's log facade.

This crate allows for providing custom functions to the logger.

Examples where this might be useful:

  • Logging logic needs to be different across log levels
  • Another application's logger is being used like with godot-rust
  • An existing crate is too opinionated in how it handles logging

Features

  • Setting logging functions per log level
  • Setting a logging function across all log levels
  • Filtering logs per module/filter
  • Initializing filters from an environment variable (RUST_LOG by default)

Example

use log::LevelFilter;
use youlog::Youlog;

Youlog::new()
    .global_level(LevelFilter::Info)
    .log_fn(LevelFilter::Info, |record| {
        println!("info {}", record.args().as_str().unwrap_or_default());
    })
    .raw_fn(|record| {
        println!("raw {}", record.args().as_str().unwrap_or_default());
    })
    .level("some_module", LevelFilter::Error)
    .init()
    .expect("unable to init logger");

log::info!("this is an info log!");

License

MPL-2.0

Filter implementation referenced from env_logger.

Commit count: 3

cargo fmt