rivet-logger 0.1.0

Rivet framework crates and adapters.
Documentation
# rivet-logger

`rivet-logger` is a simple logging crate built on top of
[`tracing`](https://docs.rs/tracing). It provides:

- A static `Log` API for output-only logging.
- Pluggable handlers such as `single`, `daily`, `stdout`, and `stack`.

## Example

```rust
use std::sync::Arc;

use rivet_logger::handlers::single::Single;
use rivet_logger::{set_handler, Log};

let single = Single::new("rivet.log")?;
set_handler(Arc::new(single));

Log::info("application booted");
Log::warn("cache warmup skipped");
Log::error("failed to connect to database");
# Ok::<(), std::io::Error>(())
```

## Stack Handler Example

```rust
use std::sync::Arc;

use rivet_logger::handlers::single::Single;
use rivet_logger::handlers::stack::Stack;
use rivet_logger::handlers::stdout::Stdout;
use rivet_logger::{set_handler, Log};

let file = Arc::new(Single::new("rivet.log")?);
let stdout = Arc::new(Stdout::new());
let stack = Stack::new(vec![file, stdout]);
set_handler(Arc::new(stack));

Log::info("application booted");
# Ok::<(), std::io::Error>(())
```

## Processor Example

```rust
use std::sync::Arc;

use rivet_logger::{Logger, PsrLogMessage, Tag};

let mut logger = Logger::new("app");
logger.push_processor(Arc::new(PsrLogMessage::default()));
logger.push_processor(Arc::new(Tag::new(vec!["http".to_string()])));
```