logroller 0.1.12

A feature-rich log rotation library with timezone support, flexible rotation strategies, and compression, integrating seamlessly with the tracing ecosystem.
Documentation
# Changelog

All notable changes to LogRoller will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.12] - 2026-07-01

### Added

- strftime template support for custom log filenames in age-based rotation (#19)

### Changed

- Updated MSRV from 1.67 to 1.71

### Fixed

- Generate `Cargo.lock` before security audit in CI

## [0.1.11] - 2026-06-28

### Added

- Background worker to offload post-rotation work for better write-path performance
- Pending sequence support for size-based rotation
- `stat()` filtering: only inspect directory entries matching the log file
  pattern (#16)

### Changed

- Use `&Path` for internal functions; document MSRV as 1.67
- Updated author information and repository links in metadata

### Fixed

- Rotation is now checked *before* writing, so log entries land within correct
  size/time boundaries (#17)
- Removed unnecessary `stat` syscalls and improved file removal safety during
  rotation cleanup

## [0.1.10] - 2025-07-05

### Added

- Optional XZ compression support (`xz` feature flag, powered by `xz2`)
- Graceful shutdown function for safe cleanup on process exit
- Adjustable XZ compression level and parallel processing
- New examples: basic XZ compression, rapid XZ with size-based rotation, and a
  Gzip-vs-XZ comparison

### Changed

- Simplified string formatting in examples; improved documentation clarity throughout

### Fixed

- Typo in rapid compression example doc comment
- Invalid XZ compression level error message and validation logic

## [0.1.9] - 2025-06-19

### Changed

- Removed unsound `make_writer` implementation; improved documentation and
  formatting in `Cargo.toml`, `README.md`, and `lib.rs`

### Fixed

- Log file rollover handling and error management (#9, #10)
- Suppressed clippy warnings for other I/O errors

## [0.1.8] - 2025-04-04

### Added

- Cross-platform CI workflow (build + test on stable and nightly channels) (#8)
- Clippy linting in CI
- CI status badge in README

### Fixed

- Compile error on Windows (#7)

## [0.1.7] - 2025-04-01

### Added

- `file_mode` option to set log file permissions (e.g. `0o644`) (#6)

### Changed

- Enhanced documentation and error-handling guidance

## [0.1.6] - 2025-02-26

### Fixed

- `refresh_writer` parameter handling

## [0.1.5] - 2025-02-25

### Fixed

- Log file deletion logic for age-based rotation

## [0.1.4] - 2025-02-25

### Changed

- Improved log file deletion logic for size-based rotation
- Optimised old-log deletion and log compression path

### Fixed

- Implemented increasing-index log rotation so rotated files follow `.1`, `.2`,
  `` naming

## [0.1.3] - 2025-02-08

### Added

- Custom suffix support for rotated log files (#2)

### Fixed

- File-pattern regex

## [0.1.2] - 2024-11-29

### Changed

- License changed from GPL-3.0 to MIT
- Time zone type switched to `FixedOffset`; simplified time-retrieval logic (#1)

## [0.1.1] - 2024-11-14

### Added

- `rustfmt.toml` configuration and improved import formatting in examples

### Fixed

- License badge in README now points to crates.io

## [0.1.0] - 2024-10-31

### Added

- Initial public release
- Time-based and age-based log rotation
- Gzip compression support
- `max_keep_files` option with automatic pruning
- `tracing-subscriber` integration via `MakeWriter` trait
- `MakeWriter` implementation for `tracing_subscriber::fmt::writer`
- Example: LogRoller with the `tracing` ecosystem

[Unreleased]: https://github.com/alasdairpan/logroller/compare/0.1.12...HEAD
[0.1.12]: https://github.com/alasdairpan/logroller/compare/0.1.11...0.1.12
[0.1.11]: https://github.com/alasdairpan/logroller/compare/0.1.10...0.1.11
[0.1.10]: https://github.com/alasdairpan/logroller/compare/0.1.9...0.1.10
[0.1.9]: https://github.com/alasdairpan/logroller/compare/0.1.8...0.1.9
[0.1.8]: https://github.com/alasdairpan/logroller/compare/0.1.7...0.1.8
[0.1.7]: https://github.com/alasdairpan/logroller/compare/0.1.6...0.1.7
[0.1.6]: https://github.com/alasdairpan/logroller/compare/0.1.5...0.1.6
[0.1.5]: https://github.com/alasdairpan/logroller/compare/0.1.4...0.1.5
[0.1.4]: https://github.com/alasdairpan/logroller/compare/0.1.3...0.1.4
[0.1.3]: https://github.com/alasdairpan/logroller/compare/0.1.2...0.1.3
[0.1.2]: https://github.com/alasdairpan/logroller/compare/0.1.1...0.1.2
[0.1.1]: https://github.com/alasdairpan/logroller/compare/0.1.0...0.1.1
[0.1.0]: https://github.com/alasdairpan/logroller/releases/tag/0.1.0