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;