A rolling file appender with customizable rolling conditions. Includes built-in support for rolling conditions on date/time (daily, hourly, every minute) and/or size.
Follows a Debian-style naming convention for logfiles, using basename, basename.1, ..., basename.N where N is the maximum number of allowed historical logfiles.
This is useful to combine with the tracing crate and tracing_appender::non_blocking::NonBlocking -- use it as an alternative to tracing_appender::rolling::RollingFileAppender.
use rolling_file::*;
let file_appender = BasicRollingFileAppender::new(
"/var/log/myprogram",
RollingConditionBasic::new().daily(),
9
).unwrap();
Must pass latest stable clippy, be formatted with nightly rustfmt, and pass unit tests:
cargo +nightly fmt
cargo clippy --all-targets
cargo test
Dual-licensed under the terms of either the MIT license or the Apache 2.0 license.