2 releases
0.2.1 | Jun 6, 2023 |
---|---|
0.2.0 | Jun 5, 2023 |
#13 in #verbose
15KB
196 lines
Stump
Stump is a very simple console logging library.
Application-set Logging Level
The application can use Stump's set_min_log_level
function call to set the globally used log level. This, however, can be user-overridden using environment variables.
#[macro_use]
extern crate stump;
fn main() {
stump::set_min_log_level(stump::LogEntryLevel::INFO);
info!("Initialized logging");
// Application logic ...
}
Environment variable control:
STUMP_LOG_AT_LEVEL = DEBUG | INFO | WARN | ERROR
STUMP_LOG_DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S%.3f"
See https://docs.rs/chrono/latest/chrono/ for date & time formatting.
Logging
debug!("Kevin is");
info!("bad at");
warn!("writing documentation");
error!("for OSS projects");
Task Completion Messages
Stump also provides functions for printing task completion status messages.
stump::print_done("Some process finished");
// Some process finished [ DONE ]
stump::print_warn("Some process with warnings");
// Some process with warnings [ WARN ]
stump::print_fail("Some process failed");
// Some process failed [ FAIL ]
General Purpose Verbose (or not) Printing
For a general purpose version of Rust's println
and eprintln
that respects a global verbosity setting.
vprintln!("This won't print as the default is false");
stump::set_verbose(true);
// print to stdout
vprintln!("Print something {}", "Here");
// print to stderr
veprintln!("Print something {}", "Here");
stump::set_verbose(false);
// Don't print to stdout
vprintln("Again nothing will print");
Overriding Stdout
When integrating stump with another CLI library, such as indicatif
, you can provide another means of printing, such as to
route the output through their print method:
use indicatif::ProgressBar;
use stump;
lazy_static! {
static ref PB: ProgressBar = ProgressBar::new(1);
}
fn main() {
stump::set_print(|s| {
PB.println(s);
});
}
Dependencies
~1–11MB
~64K SLoC