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
//! # Logfather
//!
//! A simple, lightweight, and easy-to-use logging system. It allows for detailed log messages, configurable output levels, and supports both file and terminal output.
//!
//! ## Features
//! - Easy to set up and use
//! - Supports logging to both the terminal and log files
//! - Customizable log message format
//! - Configurable log levels (Info, Debug, Warning, Error, and Critical)
//! - Configurable level display including colors, highlights, and styles
//! - Thread-safe
//!
//! ## Getting Started
//! To start using Logfather, add the following to your `Cargo.toml`:
//! ```toml
//! [dependencies]
//! logfather = "0.2.4"
//! ```
//! - Minimum supported Rust version: `1.60.0`
//!
//! ## Usage
//! Macros:
//! - <b>Trace:</b> `trace!()`
//! - <b>Debug:</b> `debug!()` [`dbg!()` was used but conflicts with other crates]
//! - <b>Info:</b> `info!()`
//! - <b>Warning:</b> `warn!()` or `warning!()`
//! - <b>Error:</b> `error!()`
//! - <b>Critical:</b> `critical!()` or `crit!()`
//!
//! Quick setup for outputting to terminal:
//! ```rust
//!
//! use logfather::*;
//!
//! fn main() {
//! let mut logger = Logger::new(); //Terminal output is enabled by default
//!
//! error!("This is an error message");
//! }
//! ```
//!
//!
//! Setting up for only file output with specific error levels to be written:
//! ```rust
//!
//! use logfather::*;
//!
//! fn main() {
//! let mut logger = Logger::new();
//! logger.terminal(false); // Disable terminal output
//! logger.file(true); // Enable file output
//! logger.path("log.txt"); // Set the path for file logging
//! logger.level(Level::Error); // Set the minimum level
//!
//! info!("This is an info message"); // Will not be written to file
//! debug!("This is a debug message"); // Will not be written to file
//! warning!("This is a warning message"); // Will not be written to file
//!
//! error!("This is an error message"); // Will be written to file
//! critical!("This is a critical message"); // Will be written to file
//! }
//! ```
//! Set up for both terminal and file output capturing every level except warning
//! ```rust
//!
//! use logfather::*;
//!
//! fn main() {
//! // Supports the builder pattern
//! let mut logger = Logger::new() // Terminal output is enabled by default
//! .file(true) // Enable file output
//! .path("log.txt") // Set the path for file logging
//! .ignore(Level::Warning); // Set the specific level to ignore
//!
//! debug!("This is a debug message");
//! warning!("This is a warning message"); // Will be ignored
//! critical!("This is a critical message");
//! }
//! ```
pub use Style;
pub use Logger;
pub use Level;
pub use TimeZone;
pub use log;
;