|
1 | 1 | # evlog |
2 | 2 |
|
| 3 | +## 2.9.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- [#212](https://github.com/HugoRCD/evlog/pull/212) [`96c47cd`](https://github.com/HugoRCD/evlog/commit/96c47cd3adfbaf0e6c53db9be55b45f652dfbdb8) Thanks [@MrLightful](https://github.com/MrLightful)! - Add React Router middleware integration (`evlog/react-router`) with automatic wide-event logging, drain, enrich, and tail sampling support |
| 8 | + |
| 9 | +### Patch Changes |
| 10 | + |
| 11 | +- [#215](https://github.com/HugoRCD/evlog/pull/215) [`31cb4ab`](https://github.com/HugoRCD/evlog/commit/31cb4ab903c969107a368cb5a9629eff6fe0c63b) Thanks [@HugoRCD](https://github.com/HugoRCD)! - fix(nitro): always create logger in request hook so `useLogger()` works in server middleware |
| 12 | + |
| 13 | + Previously, calling `useLogger(event)` inside a Nuxt server middleware would throw `"Logger not initialized"` because the Nitro plugin skipped logger creation for routes not matching `include` patterns. Since middleware runs for every request, this made it impossible to use `useLogger` there. |
| 14 | + |
| 15 | + The `shouldLog` filtering is now evaluated at emit time instead of creation time — the logger is always available on `event.context.log`, but events for non-matching routes are silently discarded. |
| 16 | + |
3 | 17 | ## 2.8.0 |
4 | 18 |
|
5 | 19 | ### Minor Changes |
6 | 20 |
|
7 | 21 | - [#196](https://github.com/HugoRCD/evlog/pull/196) [`abda28c`](https://github.com/HugoRCD/evlog/commit/abda28cc00b6276a59c2cf9dcfca295f4d7b878c) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add `evlog/ai` integration for AI SDK v6+ observability. |
8 | | - |
9 | 22 | - `createAILogger(log)` returns an `AILogger` with `wrap()` and `captureEmbed()` |
10 | 23 | - Model middleware captures token usage, tool calls, finish reason, and streaming metrics |
11 | 24 | - Supports `generateText`, `streamText`, `generateObject`, `streamObject`, and `ToolLoopAgent` |
|
19 | 32 | - `ai` is an optional peer dependency |
20 | 33 |
|
21 | 34 | - [#189](https://github.com/HugoRCD/evlog/pull/189) [`d92fb46`](https://github.com/HugoRCD/evlog/commit/d92fb46b2d272dca0de73a0ffedda746304f57b6) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add `evlog/vite` plugin for build-time DX enhancements in any Vite-based framework. |
22 | | - |
23 | 35 | - Zero-config auto-initialization via Vite `define` (no `initLogger()` needed) |
24 | 36 | - Build-time `log.debug()` stripping in production builds (default) |
25 | 37 | - Source location injection (`__source: 'file:line'`) for object-form log calls |
|
31 | 43 | ### Patch Changes |
32 | 44 |
|
33 | 45 | - [#197](https://github.com/HugoRCD/evlog/pull/197) [`3601d30`](https://github.com/HugoRCD/evlog/commit/3601d303c122509a8f665f20e8275248e6e6e7f5) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add retry with exponential backoff to all HTTP drain adapters and improve timeout error messages. |
34 | | - |
35 | 46 | - Transient failures (timeouts, network errors, 5xx) are retried up to 2 times with exponential backoff (200ms, 400ms) |
36 | 47 | - `AbortError` timeout errors now display a clear message: `"Axiom request timed out after 5000ms"` instead of the cryptic `"DOMException [AbortError]: This operation was aborted"` |
37 | 48 | - New `retries` option on all adapter configs (Axiom, OTLP, Sentry, PostHog, Better Stack) |
|
0 commit comments