A small and simple log implementation that I use in my rust projects.
Just add
toml
[dependencies]
log = "0.4.8"
loggify = "1.3.0"
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.
``` rust //! 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");
} ```
``` rust //! examples/02loglevel.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::initwithlevel(Level::Debug).unwrap();
error!("My error message");
warn!("My warn message");
info!("My info message");
debug!("My debug message");
trace!("Will not be shown");
} ```
``` rust //! 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()
.setlevel(log::Level::Trace)
.settime_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");
} ```
``` rust //! 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");
} ```
``` rust //! 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 .setlogtarget(true) // this will oppress all logs coming from example::excluded::* .addexclude("example::excluded".tostring()) .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();
} ```