#logging-tracing #rolling #debugging #log-file #minutes #filesize

rolling-file

A rolling file appender with customizable rolling conditions

2 unstable releases

0.2.0 Jan 14, 2023
0.1.0 Mar 31, 2021

#285 in Date and time

Download history 38204/week @ 2024-11-30 36995/week @ 2024-12-07 26446/week @ 2024-12-14 13886/week @ 2024-12-21 18245/week @ 2024-12-28 36237/week @ 2025-01-04 31783/week @ 2025-01-11 31405/week @ 2025-01-18 31739/week @ 2025-01-25 36107/week @ 2025-02-01 36842/week @ 2025-02-08 24417/week @ 2025-02-15 28016/week @ 2025-02-22 34256/week @ 2025-03-01 36043/week @ 2025-03-08 30185/week @ 2025-03-15

132,146 downloads per month
Used in 39 crates (5 directly)

MIT/Apache

28KB
507 lines

rolling-file

rolling-file on GitHub Actions rolling-file on crates.io rolling-file on docs.rs GitHub: Axcient/rolling-file-rs license: MIT or Apache-2.0 minimum rustc: 1.42

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.

Examples

use rolling_file::*;
let file_appender = BasicRollingFileAppender::new(
    "/var/log/myprogram",
    RollingConditionBasic::new().daily(),
    9
).unwrap();

Development

Must pass latest stable clippy, be formatted with nightly rustfmt, and pass unit tests:

cargo +nightly fmt
cargo clippy --all-targets
cargo test

License

Dual-licensed under the terms of either the MIT license or the Apache 2.0 license.

Changelog

See CHANGELOG.md

Dependencies

~1MB
~18K SLoC