# Kameleoon Trace Logging

`kameleoon-trace-logging` provides procedural macros used by Kameleoon Rust crates to emit structured trace logs around method calls.

## What it provides

- The `#[trace_method(...)]` attribute macro for tracing function entry and return values
- Support for selecting a log level
- Support for skipping `self`, return values, or specific parameters in logs

## Example

```rust
use kameleoon_trace_logging::trace_method;

#[trace_method(LogLevel::Debug, skip(self, secret, retval))]
fn evaluate(&self, key: &str, secret: &str) -> bool {
    !key.is_empty() && !secret.is_empty()
}
```

This expands the function with trace logging on call and return, while omitting the values listed in `skip(...)`.

## Intended use

This crate is primarily intended for Kameleoon Rust crates and internal SDK components that share the same logging conventions.
