structured_persistent_logger 0.1.0

A structured 'log' logger that allows for persistent fields
Documentation
# Structured Persistent Logger

`structured_persistent_logger` is a Rust crate providing a structured logging solution that is compatible with the standard `log` crate. It features persistent logging capabilities, allowing for the retention and structured formatting of log records.

## Features

- Integration with the standard `log` crate.
- Structured logging with JSON formatting.
- Persistent logging capabilities across application lifecycle.
- Thread-safe logging with support for multi-threaded environments.

## Installation

Add `structured_persistent_logger` to your `Cargo.toml`:

```toml
[dependencies]
structured_persistent_logger = "0.1.0"
log = "0.4.0"
```

## Usage

To use `structured_persistent_logger`, initialize it at the start of your application:

```rust
use structured_persistent_logger::StructuredPersistentLogger;

fn main() {
    StructuredPersistentLogger::init();
    add_persistent_logs! {
        "key1" => json!("value1"),
        "key2" => json!({"nested": "structure"})
    };
    log::info!("This is an info message");
    // output:
    // {
    //    "key1": "value1",
    //    "key2": { "nested": "structure" },
    //    "message": "This is an info message",
    //    "level": "INFO"
    // }
}
```

### Adding Persistent Logs

You can add persistent logs that will be included in every log message:

```rust
use structured_persistent_logger::add_persistent_logs;
use serde_json::json;

fn some_function() {
    add_persistent_logs! {
        "key1" => json!("value1"),
        "key2" => json!(123)
    };
}
```

## Configuration

The logger can be configured to adjust its behavior, such as setting log levels or customizing the format of log entries.

## Contributing

We welcome contributions to `structured_persistent_logger`! Please feel free to submit pull requests or open issues to improve the library.

## License

This crate is licensed under [MIT license](LICENSE).