log4you 0.1.4

Structured logging for Rust with dynamic UUID log IDs, built on log4rs.
Documentation
//! # log4you
//! 
//! > Structured logging for Rust with dynamic UUID log IDs, built on [log4rs](https://docs.rs/log4rs).
//! 
//! 
//! **log4you** is a lightweight logging crate, designed for applications that need consistent, structured logging with unique log identifiers (UUIDs). It allows simple, efficient, and consistent logging with unique log IDs for each request.
//! 
//! ---
//! 
//! ## โœจ Features
//! 
//! - ๐Ÿ”ง Powered by `log4rs`, configure logging dynamically with YAML configuration files, compatible with the standard Rust `log` facade
//! - โœ… Structured logging with automatic **UUID log IDs**
//! - ๐Ÿ†” Generates a unique `log_id` (UUID v7) per log entry using Uuid::now_v7().simple() via `log_id!` macro
//! - ๐Ÿช„ Easy-to-use macros: `log_info!`, `log_error!`, etc.
//! - ๐Ÿ› ๏ธ Supports dynamic config paths, log rotation, and file size management
//! - ๐Ÿš€ Easy setup and integration โ€” works out of the box
//! - ๐Ÿงต Great for async or multithreaded apps
//! 
//! Perfect for microservices, APIs, and any system where traceability and clean logs matter.
//! 
//! ---
//! 
//! ## โš™๏ธ Example YAML Configuration
//! 
//! See the [`log4rs` configuration documentation](https://docs.rs/log4rs/latest/log4rs/#configuration) for more details.
//! 
//! ```yaml
//! appenders:
//!   stdout:
//!     kind: console
//!     encoder:
//!       pattern: "[{d(%Y-%m-%dT%H:%M:%S%.6f)} {h({l})} {f}:{L}] - {m}{n}"
//! 
//!   log4you:
//!     kind: rolling_file
//!     path: "logs/log4you.log"
//!     policy:
//!       kind: compound
//!       trigger:
//!         kind: size
//!         limit: 100MB
//!       roller:
//!         kind: fixed_window
//!         pattern: "logs/log4you-{}.log"
//!         count: 5
//!     encoder:
//!       pattern: "[{d(%Y-%m-%dT%H:%M:%S%.6f)} {h({l})} {f}:{L}] - {m}{n}"
//! 
//! root:
//!   level: info
//!   appenders:
//!     - stdout
//! 
//! loggers:
//!   log4you:
//!     level: debug
//!     appenders:
//!       - log4you
//! ```
//! 
//! ---
//! 
//! ## ๐Ÿ› ๏ธ Usage Example
//! 
//! ```rust
//!  use log4you::{logger::Logger, log_id, log_info, log_info_with_id};
//! 
//!  let logid = log_id!();
//!  // Initialize the logger with a log_id, a path to the YAML config, and the service name
//!  Logger::init(&logid,  Some("config/log4you.yaml"), Some("log4you"));
//! 
//!  // Log an info message, logid will be generated automatically
//!  log_info!("Service started");
//! 
//!  // Log an info message, logid is defined by yourself
//!  let custom_log_id = log_id!();
//!  log_info_with_id!(custom_log_id, "This log uses custom log_id");
//! ```
//! 
//! ---
//!
//! ## ๐Ÿ“œ  License
//!
//! Licensed under:
//! - Apache License, Version 2.0 [LICENSE](http://www.apache.org/licenses/LICENSE-2.0.txt)
//!
//! ---
//!
//! ## ๐Ÿง‘โ€๐Ÿ’ป Author
//!
//! Created and maintained by [Jerry Maheswara](https://github.com/jerry-maheswara-github)
//!
//! Feel free to reach out for suggestions, issues, or improvements!
//!
//! ---
//!
//! ## โค๏ธ Built with Love in Rust
//!
//! This project is built with โค๏ธ using **Rust** โ€” a systems programming language that is safe, fast, and concurrent. Rust is the perfect choice for building reliable and efficient applications.
//!
//! ---
//!
//! ## ๐Ÿ‘‹ Contributing
//!
//! Pull requests, issues, and feedback are welcome!  
//! If you find this crate useful, give it a โญ and share it with others in the Rust community.
//!
//! ---

pub use log as __log_crate;
pub use uuid as __uuid_crate;
#[macro_use]
pub mod macros;
pub mod logger;
pub mod utils;