Crates.io | loggify |
lib.rs | loggify |
version | 1.4.0 |
source | src |
created_at | 2018-05-17 19:35:27.192407 |
updated_at | 2020-06-03 17:10:19.846811 |
description | Small and simple rust logger |
homepage | https://github.com/lholznagel/loggify |
repository | https://github.com/lholznagel/loggify |
max_upload_size | |
id | 65917 |
size | 25,874 |
A small and simple log implementation that I use in my rust projects.
Just add
[dependencies]
log = "0.4.8"
loggify = "1"
to your Cargo.toml
All examples can be found in the examples
directory.
The simpliest way is just to call init
.
The default log level is Info
, so that debug and trace messages are not shown.
//! examples/01_basic.rs
//! # Basic usage for the logger
use log::{error, warn, info, debug, trace};
use loggify::Loggify;
/// The default level is INFO. So debug and trace outputs are oppressed
fn main() {
Loggify::init().unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("Will not be shown");
trace!("Will not be shown");
}
//! examples/02_log_level.rs
//! Example for initializing the logger with a log level
use log::{error, warn, info, debug, trace, Level};
use loggify::Loggify;
/// Same as the basic example with the difference that
/// the logger is intialized with the debug log level.
fn main() {
Loggify::init_with_level(Level::Debug).unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("My debug message");
trace!("Will not be shown");
}
//! examples/03_builder.rs
//! Example for initializing the logger with the LogBuilder
use log::{error, warn, info, debug, trace};
use loggify::LogBuilder;
/// The `LogBuilder` is used to set more logger options
/// This example will change the log level to Trace
/// and the printed time format to time only
fn main() {
LogBuilder::new()
.set_level(log::Level::Trace)
.set_time_format(String::from("%H:%M:%S"))
.build()
.unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("My debug message");
trace!("My trace message");
}
You can either programmatically disable color output or use the env LOGGIFY_COLOR
variable.
To disable it using the env variable use LOGGIFY_COLOR=false
.
If the value of the env variable cannot be parsed as a boolean value, the logger silently defaults to a colored output.
See the code example for programmatically disabling colored output.
//! examples/05_builder.rs
//! Example for initializing the logger with the LogBuilder
use log::{error, warn, info, debug, trace};
use loggify::LogBuilder;
/// The `LogBuilder` is used to set more logger options
/// This example will disable the colored output
fn main() {
LogBuilder::new()
.disable_color()
.build()
.unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("My debug message");
trace!("My trace message");
}
//! examples/04_exclude.rs
//! Example for excluding log targets from getting logged
use log::{error, warn, info, debug, trace};
use loggify::LogBuilder;
mod example {
pub mod excluded {
use log::info;
pub fn call_me() {
info!("I will not be logged");
}
}
pub mod included {
use log::info;
pub fn call_me() {
info!("I will be logged");
}
}
}
/// Exmple on how to exclude specific log targets
fn main() {
LogBuilder::new()
// this will show the log targets so that we can determine
// what to exclude
.set_log_target(true)
// this will oppress all logs coming from example::excluded::*
.add_exclude("example::excluded".to_string())
.set_level(log::Level::Trace)
.build()
.unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("My debug message");
trace!("My trace message");
// the log message of this call will not be shown
example::excluded::call_me();
// this log message will be shown
example::included::call_me();
}