Files
brk/crates/brk_logger/README.md
2026-05-06 15:33:07 +02:00

46 lines
1.5 KiB
Markdown

# brk_logger
Colorized, timestamped logging with optional file output and hooks.
## What It Enables
Drop-in logging initialization that silences noisy dependencies (bitcoin, fjall, rolldown, ...) while keeping your logs readable with color-coded levels and local timestamps.
## Key Features
- **Dual output**: Console (colorized) + optional file logging with daily rotation
- **Per-level files**: One combined log plus one file per tracing level (error/warn/info/debug/trace)
- **Per-level rate limit**: 100 writes/sec per level so a chatty level can't starve the others; combined file mirrors what the per-level files accept
- **Auto-cleanup**: `*.txt` files older than 7 days are pruned on startup
- **Log hooks**: Register callbacks to intercept log messages programmatically
- **Sensible defaults**: Pre-configured filters silence common verbose libraries
- **Timestamp formatting**: Uses system timezone via jiff
## Environment Variables
- `LOG` - Set log level (default: `info` in release, `debug` in dev). Example: `LOG=debug brk`
- `RUST_LOG` - Full control over filtering (overrides all defaults)
## Core API
```rust,ignore
brk_logger::init(Some(Path::new("logs")))?; // Console + files in logs/
brk_logger::init(None)?; // Console only
brk_logger::register_hook(|msg| {
// React to log messages
})?;
```
## Usage
```rust,ignore
use tracing::info;
fn main() -> std::io::Result<()> {
brk_logger::init(None)?;
info!("Ready");
Ok(())
}
```