1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
#![warn(missing_docs)]
#![warn(clippy::missing_docs_in_private_items)]
//! # duryLog
//!
//! This crate adds logging to your projects or library.
//!
//! After trying a lot of crates to make logging, I only found crates rich of futures but very complicate to use,
//! or crates that are easy to use but log only on file or only on console.
//!
//! I decided to write my own lib that aims to be **easy to use with some usefull futures**:
//! * Can log only on stdout, only on file or both.
//! * Very easy to start: install and use immediately.
//! * Short API names.
//! * It implements [log](https://crates.io/crates/log) crate so you can use Rust library logging macros.
//!
//! ## Add to project:
//! In file cargo.toml add:
//! ```toml
//! [dependencies]
//! durylog = "0.1.0"
//! ```
//! ## Getting Start
//! There are 2 way for use this crate:
//! * Directly create object: ```let durylog=DLog::new();``` and use like ```durylog.d("Log message");```
//! * Initialize logger: ```DLog::new().init_logger().ok();``` and use with [log](https://crates.io/crates/log) macro like ```debug!("Log message");```
//!
//! Read [documentation](https://docs.rs/durylog/) and [examples](examples/).
//!
//! Output (on console and/or file) for default settings is like:
//! ```toml
//! 2023/01/02 18.01.27 : DEBUG : Debug message
//! ```
//! First tag is datetime stamp, second tag is level name followed by log message tag
//! ## Examples:
//! ### Directly usage with default settings:
//! ```rust
//! use durylog::DLog;
//!
//! fn main() {
//! let durylog=DLog::new();
//!
//! println!("{}", durylog.get_status()); // This prints all current crate settings (in this case are defaults)
//!
//! durylog.e("Error message");
//! durylog.w("Warning message");
//! durylog.i("Info message");
//! durylog.d("Debug message");
//! durylog.t("Trace message");
//! }
//! ```
//! This will log on stdout without colors.
//!
//! ### Directly usage with custom settings:
//! ```rust
//! use durylog::DLog;
//!
//! fn main() {
//! let durylog=DLog::new()
//! .with_color() // Enable colors in console output (default disabled)
//! .widh_timestamp_format("%Y-%m-%d %H:%M:%S") // Change default timestamp
//! .widh_custom_separator(" | ") // Change default separator pattern for items
//! .with_file("durylog-custom.log").unwrap(); // Enable logging on file (default disable)
//!
//! println!("{}", durylog.get_status()); // This prints all current crate settings (in this case there are custom)
//!
//! durylog.e("Error message");
//! durylog.w("Warning message");
//! durylog.i("Info message");
//! durylog.d("Debug message");
//! durylog.t("Trace message");
//! }
//! ```
//! This will log on stdout with colors, different formatting for timestamp and different tags separator and in file durylog-custom.log are added same log lines as in console.
//!
//! ### Macros usage with default settings:
//! ```rust
//! use durylog::{error,warn,info,debug,trace,DLog};
//!
//! fn main() {
//! DLog::new().init_logger().ok();
//!
//! error!("Error message");
//! warn!("Warning message");
//! info!("Info message");
//! debug!("Debug message");
//! trace!("Trace message");
//! }
//! ```
//! This will log on stdout without colors.
//!
//! ### Macros usage with custom settings:
//! ```rust
//! use durylog::{error,warn,info,debug,trace,DLog};
//!
//! fn main() {
//! DLog::new()
//! .with_color() // Enable colors in console output (default disabled)
//! .widh_timestamp_format("%Y-%m-%d %H:%M:%S") // Change default timestamp
//! .widh_custom_separator(" | ") // Change default separator pattern for items
//! .with_file("log-custom.log").unwrap() // Enable logging on file (default disable)
//! .init_logger().ok();
//!
//! error!("Error message");
//! warn!("Warning message");
//! info!("Info message");
//! debug!("Debug message");
//! trace!("Trace message");
//! }
//! ```
//! This will log on stdout with colors, different formatting for timestamp and different tags separator and in file log-custom.log are added same log lines as in console.
//!
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
let result = 2 + 2;
assert_eq!(result, 4);
}
}
/// the only module in this crate.
pub mod durylog;
pub use crate::durylog::DLog;
pub use crate::durylog::debug;
pub use crate::durylog::error;
pub use crate::durylog::warn;
pub use crate::durylog::info;
pub use crate::durylog::trace;