wattle_appender/
lib.rs

1//! Wattle Appender - A feature-rich file appender for tracing
2//!
3//! `wattle-appender` provides a flexible file logging solution for the `tracing` framework
4//! with support for log rotation, compression, and both blocking and non-blocking write modes.
5//!
6//! # Features
7//!
8//! - **default**: Basic file appending with blocking mode only
9//! - **non-blocking**: Async writing using crossbeam channels
10//! - **compression-gzip**: Gzip compression support
11//! - **compression-zstd**: Zstd compression support
12//! - **compression-xz**: XZ compression support
13//! - **compression-zip**: Zip compression support
14//! - **full**: Enables `non-blocking` and `compression-zstd`
15//!
16//! # Example (default features)
17//!
18//! ```no_run
19//! use wattle_appender::FileAppender;
20//!
21//! let appender = FileAppender::new()
22//!     .file_name("logs/app.log")
23//!     .daily_rotation()
24//!     .max_backup(7)
25//!     .build()
26//!     .unwrap();
27//! ```
28//!
29//! # Example with full features
30//!
31//! ```toml
32//! [dependencies]
33//! wattle-appender = { version = "0.1", features = ["full"] }
34//! ```
35//!
36//! ```no_run
37//! use wattle_appender::FileAppender;
38//!
39//! # #[cfg(all(feature = "non-blocking", feature = "compression-zstd"))]
40//! # {
41//! let appender = FileAppender::new()
42//!     .file_name("logs/app.log")
43//!     .blocking(false)  // Requires "non-blocking" feature
44//!     .daily_rotation()
45//!     .compress(true)
46//!     .zstd_compression()  // Requires "compression-zstd" feature
47//!     .max_backup(7)
48//!     .build()
49//!     .unwrap();
50//! # }
51//! ```
52
53mod appender;
54mod builder;
55#[cfg(any(
56    feature = "compression-gzip",
57    feature = "compression-zstd",
58    feature = "compression-xz",
59    feature = "compression-zip"
60))]
61mod compression;
62mod rotation;
63mod types;
64mod writer;
65
66pub use appender::FileAppender;
67pub use builder::FileAppenderBuilder;
68pub use writer::FileAppenderWriter;