A high-performance asynchronous logging library for Rust built on crossbeam channels with appender-per-thread architecture.
fast_log is a high-performance asynchronous logging library for Rust. It solves the problem of logging overhead in performance-critical applications by using a multi-channel architecture with batch writing and dedicated appenders per thread.
Rust developers building high-performance applications where logging speed and low overhead are critical, such as servers, real-time systems, and data processing pipelines.
Developers choose fast_log for its extreme performance, safe Rust implementation, and flexible features like log rotation, compression, and custom appenders without sacrificing speed.
Rust async log High-performance asynchronous logging
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show logging operations as low as 85 nanoseconds per iteration using crossbeam channels and batch writing, minimizing overhead.
Enforces 100% safe Rust with #![forbid(unsafe_code)], eliminating memory safety risks in production environments.
Supports log rotation by date, size, or duration with built-in compression options like ZIP and LZ4, as shown in the file_split examples.
Uses dedicated appenders per thread to reduce contention, improving throughput in multi-threaded applications.
Allows implementing the LogAppender trait for custom destinations, demonstrated in the custom log example.
Requires manual tuning of parameters like chan_len for optimal performance, which can be complex and error-prone compared to simpler libraries.
Logs are batched and processed asynchronously, causing a delay before persistence that might not suit real-time monitoring or debugging needs.
Being performance-focused, it lacks the wide range of plugins and third-party tool integrations found in more established logging crates.