logixlysia 6.8.1 → 6.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,552 @@
1
+ # Changelog
2
+
3
+ ## 6.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 83c935e: Built-in adapters no longer follow HTTP redirects on ingest requests, so a credential header cannot be forwarded to another origin; a redirect now fails the batch and is reported like any other transport error. Endpoint URLs from options or env vars are validated when the transport is created and must use `http:` or `https:`.
8
+ - 10a8889: A failed gzip during rotation no longer skips `maxFiles` cleanup and is reported once. `timestamp.translateTime` understands pino-pretty's `SYS:standard`, `SYS:<pattern>` and `UTC:<pattern>` forms on the console line. `resolveOptions` now rejects `slowThreshold` greater than `verySlowThreshold` and a numeric `logRotation.maxFiles` that is not a positive integer.
9
+ - 8249fa9: `wrapWs` now forwards the close `code` and `reason` to your `close` hook and logs them on the "WebSocket closed" line; a hook that throws no longer skips the lifecycle log or leaks the connection's context; message logs report `payloadType: 'binary'` for `ArrayBuffer`/typed-array frames.
10
+
11
+ ## 6.9.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 01c0a37: Add `logixlysia/desertant`: `withRedaction()` wraps a transport so every record passes through an injected PII redactor before delivery, masking free-text PII — names, addresses, phone numbers, national IDs — that the pattern-based `autoRedact` pass cannot match. `NeuralRedactorSource` accepts a redactor, promise, or loader; whether processing stays local depends on the selected source.
16
+
17
+ The redactor is injected rather than imported, so logixlysia gains no dependency. Redaction runs off the request path, preserves log order, and bounds its queue. Records that fail model loading or redaction are dropped and reported by default; the original record is forwarded only when `onFailure: 'forward'` is explicitly configured.
18
+
19
+ - bd4b5ba: Export `HttpError` (with `HttpErrorInit` and `HttpErrorPayload` types) and a named `logixlysia` export from the package entry, as the docs and README already describe. Ship the LICENSE file in the npm tarball.
20
+ - 8479941: Transports may now implement optional `flush()` and `close()`. The plugin flushes every transport and the file sink when the Elysia app stops, bounded by the new `config.flushTimeoutMs` (default 5000 ms; `0` disables waiting). A timeout is reported through `config.onError` with `sink: 'shutdown'`. `flushLogixlysia(options)` is exported for callers who need to drain (and optionally close) sinks outside the Elysia lifecycle.
21
+
22
+ ### Patch Changes
23
+
24
+ - 21126ae: Built-in adapters now deliver batches in order (one in-flight send at a time), `flush()` waits for every batch queued before it, and timer-driven flush failures are reported through the transport's `onError` option instead of an unthrottled `console.error`. `postWithRetry` honors `Retry-After` on 429 (capped at 30 s) and releases successful response bodies.
25
+ - 110df6b: README: document the built-in adapters, sampling, enrichers, redaction and structured errors.
26
+ - 6283f93: `autoRedact` now masks query-string values whose parameter name is sensitive (`token`, `password`, `api_key`, and any `redactKeys` entry), preserves `error.cause` and other non-enumerable error fields instead of dropping them, no longer mistakes dotted version numbers like `120.0.0.0` for IP addresses, and masks IPv6 addresses. Console output sanitizes the message, the raw-URL fallback, and error entries the same way the file sink already does. The Sentry adapter no longer echoes the DSN in its configuration error. The geo enricher bounds header-derived values.
27
+ - 3765322: Access logs now report the status of a returned `Response`; a custom log that was filtered out no longer suppresses the access log; an error thrown after the handler produces one final line with the request's real duration and context; in-handler custom logs show the elapsed request time instead of `0ms`; `store.beforeTime` is populated per request; the AsyncLocalStorage logger is reset when a request ends.
28
+
29
+ ## 6.8.1
30
+
31
+ ### Patch Changes
32
+
33
+ - ad4fce1: Raise the `elysia` peer dependency floor to `^1.4.30`.
34
+
35
+ ## 6.8.0
36
+
37
+ ### Minor Changes
38
+
39
+ - 7d22709: Add the `logixlysia/axiom` adapter. `createAxiomTransport()` ships logs to an Axiom dataset via the ingest API with batching, retries, and env-based credentials (`AXIOM_API_KEY`, `AXIOM_DATASET`, `AXIOM_ORG_ID`, `AXIOM_URL`). Events keep their nested structure so every field is queryable with APL.
40
+ - 7d22709: Add the `logixlysia/better-stack` adapter. `createBetterStackTransport()` ships logs to Better Stack Telemetry using `BETTER_STACK_SOURCE_TOKEN`, supporting both the legacy shared endpoint and the dedicated per-source ingesting hosts (`BETTER_STACK_INGESTING_HOST`). Logs post with a `dt` timestamp, `level`, `message`, and the full meta object.
41
+ - 7d22709: Add the `logixlysia/clickhouse` adapter. `createClickHouseTransport()` inserts logs into a ClickHouse table over the HTTP interface using `JSONEachRow` — rows carry `timestamp`, `level`, `message`, and an `attributes` map of the flattened meta. Database and table names are validated as plain identifiers, and ISO timestamps parse via `date_time_input_format=best_effort`.
42
+ - 7d22709: Add the `logixlysia/datadog` adapter. `createDatadogTransport()` ships logs to Datadog's v2 logs intake (`DD_API_KEY`, `DD_SITE` for regions). The log level lands in the `status` attribute for Datadog's default remapper, the HTTP response status follows the standard `http.status_code` attribute, and the full meta object rides along as searchable attributes.
43
+ - f8f6960: Add `config.enrichers` and the `logixlysia/enrichers` subpath. An enricher contributes fields to the request context once and they reach every sink at once — console tree, file logs, and all transports. Four are built in: `traceparentEnricher()` parses the W3C `traceparent` header directly, with no OpenTelemetry SDK required, so logs link to traces in Sentry, HyperDX, or any OTLP backend; `userAgentEnricher()` adds browser, OS, device, and bot fields; `geoEnricher()` reads the geo headers Vercel, Cloudflare, and Netlify already attach; `sizeEnricher()` records `requestBytes` and `responseBytes`. Custom enrichers are a bare function (request phase) or an object with `request` and `response` phases. A hook that throws is reported via `onError` with the new `sink: 'enricher'` and skipped, never failing the request.
44
+ - 7d22709: Add the `logixlysia/hyperdx` adapter. `createHyperDXTransport()` ships logs to HyperDX (cloud or self-hosted collectors) as OTLP JSON over HTTP, authenticated with `HYPERDX_API_KEY`. Meta fields become dot-notation log attributes searchable in the HyperDX UI.
45
+ - 7d22709: Add the `logixlysia/loki` adapter. `createLokiTransport()` pushes logs to Grafana Loki (self-hosted or Grafana Cloud with basic auth, multi-tenant via `X-Scope-OrgID`). Streams are labeled with low-cardinality `service_name` and `level`; the log line is the message and full meta as JSON, ready for LogQL's `| json`.
46
+ - 7d22709: Add the `logixlysia/otlp` adapter. `createOtlpTransport()` ships logs to any OTLP/HTTP logs endpoint as `ExportLogsServiceRequest` JSON — OpenTelemetry Collectors, Grafana Cloud, New Relic, Honeycomb, SigNoz, and other OTLP-compatible backends. Honors the standard `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_HEADERS`, and `OTEL_SERVICE_NAME` variables.
47
+ - 7d22709: Add the `logixlysia/posthog` adapter. `createPostHogTransport()` captures logs as PostHog events via the batch API (`POSTHOG_API_KEY`, `POSTHOG_HOST` for EU/self-hosted). Meta fields become dot-notation event properties, and logs carrying a `userId` in the request context are linked to PostHog persons via `distinct_id`.
48
+ - f8f6960: Add head + tail sampling via `config.sampling`. Head sampling keeps a percentage of records per level (`{ INFO: 10 }`; levels left out keep everything), so log spend stops scaling one-for-one with traffic. Tail sampling buffers what head dropped and replays it when the finished request matches `status`, `durationMs`, or a path glob — failures and slow paths keep their full log trail instead of losing nine lines in ten. Dropped records skip context merging, redaction, formatting, and every sink; replayed ones keep the duration they had when captured.
49
+ - 7d22709: Add the `logixlysia/sentry` adapter. `createSentryTransport()` ships structured logs to Sentry (Explore > Logs) via the envelope endpoint using `SENTRY_DSN` — no Sentry SDK required. Every meta field becomes a typed, searchable attribute, and `trace_id` from the request context links logs to traces.
50
+ - f8f6960: `HttpError` now carries the context that makes a failure actionable: `code` (a stable identifier the client can branch on, unlike the message), `why`, `fix`, `link`, and `internal`. The first four appear in both the log and the response body; `internal` is log-only — it is non-enumerable and excluded from `toJSON()`, so no serializer can put it in a response. Error details also render in the console context tree for 4xx responses now, not just 5xx. Fully backward compatible: `new HttpError(404, 'Not found')` still responds with the bare message, and only an error carrying at least one client-facing field responds as JSON.
51
+ - f8f6960: The request-scoped logger is now generic over your field type: `logixlysia<CheckoutFields>()` types `log.mergeContext()` and the per-call `context` argument as `Partial<CheckoutFields>`, so TypeScript rejects a misspelled `user_id` before it splits your dashboard query in two. `useLogger<CheckoutFields>()` takes the same parameter for code outside the handler. Type-only with no runtime cost, and the default keeps every key allowed, so existing untyped code is unaffected.
52
+
53
+ ## 6.7.0
54
+
55
+ ### Minor Changes
56
+
57
+ - 64333ca: `logRotation.interval` now actually rotates. The live file's age (from
58
+ filesystem creation time, falling back to open time where the filesystem
59
+ reports none) is checked after every write, and the file rotates on the
60
+ first write after the interval elapses — no timers, so an idle process
61
+ rotates on its next write rather than on a wall-clock schedule. When both
62
+ `maxSize` and `interval` are set, whichever trigger is crossed first
63
+ rotates. Previously `interval` was accepted and format-validated but
64
+ never triggered rotation; configs that already set it will begin rotating
65
+ on upgrade.
66
+ - 964e60c: `autoRedact` now redacts by sensitive key/header names (authorization, cookie, x-api-key, password, secret, token, session, …) in addition to value patterns; new `config.redactKeys` extends the list, and pino gets matching `redact.paths` defaults.
67
+ - 1e949a1: Harden log output: file-sink lines, client IPs, and context-tree values are sanitized (control characters escaped/stripped, lengths bounded); malformed inbound request IDs are replaced with generated ones; log files/dirs are created with `0600`/`0700` modes, configurable via `logFileMode`/`logDirMode` (existing files keep their mode).
68
+ - 3267e1f: Internal log/error pipelines are unified: error-path logs now honor the same sink gates and console-method-by-level as success-path logs (a 4xx warning now prints via `console.warn` instead of `console.error`). New `config.onError` hook surfaces transport/file/rotation sink failures to your code.
69
+ - 11a0cd2: Validation errors no longer log the submitted request body (`found`/`errors`) by default — messages are normalized to the failed paths only. Set `config.logErrorPayload: true` to restore payload logging. Raw Error objects are no longer passed into transport meta.
70
+
71
+ ### Patch Changes
72
+
73
+ - efab720: File sink now holds an open file handle, batches same-tick lines into single writes, creates the log directory once, and tracks file size in memory — removing the per-line mkdir/open/stat syscalls. Rotation behavior is unchanged.
74
+ - 69b83aa: Per-request logging is faster: format tokens are computed only when present in the log format, colors/thresholds/service are resolved once per logger, URL parsing and duration sampling happen once per emission, internal context reads no longer clone, WebSocket synthetic requests are memoized per path, and `autoRedact` returns the original object untouched when nothing needs redacting.
75
+ - ad0a2e6: pino is now constructed lazily on first access to `store.pino`/`logger.pino` (or eagerly when `config.pino` is set), instead of on every plugin instantiation. Dead internal helpers `formatLine`, `logWithPino`, and `renderContextTreeLines` were removed (they were never exported from the package).
76
+ - 6c26cc2: Remove the unused `ai` peer dependency, mark `typescript` as an optional peer and widen it to the proven TS 5.x floor, and align the package tsconfig with the shared monorepo base.
77
+ - 30869f4: Internal type reorganization: the config object is now composed of named sub-interfaces (`FormattingConfig`, `OutputConfig`, `RedactionConfig`, …) behind the same `Options` shape; `HttpError` moved to a dedicated module. All public import paths and names are unchanged.
78
+
79
+ ### Correction (2026-08-10)
80
+
81
+ The 5.3.0 entries "log-rotation: implement complete rotation with
82
+ interval support" (673b800, 9016a51) added the `interval` config field
83
+ and its format validation, but did not wire it to actually trigger
84
+ rotation — `interval` was a no-op from 5.3.0 until the lazy-on-write
85
+ implementation landed on 2026-08-10. See
86
+ `plans/spikes/021-interval-rotation-decision.md` for the investigation.
87
+
88
+ ## 6.6.1
89
+
90
+ ### Patch Changes
91
+
92
+ - 8d86149: Bump `chalk` from 5 to 6. Chalk 6 requires Node.js 22 or newer, so this raises the effective minimum runtime for `logixlysia`. The colouring API used by the logger is unchanged.
93
+ - b0f6078: Fix the per-file write/compression mutex: locks are now registered synchronously, so concurrent same-tick writes to one log file no longer interleave with rotation (previously could drop or tear lines).
94
+ - ded5689: Track request start time per-request instead of in Elysia app-global state; logged durations are now correct when requests overlap.
95
+ - 3660d08: Reject invalid log-rotation sizes (empty, negative, non-finite) and validate `logRotation`/`preset` config at plugin construction instead of failing silently per write.
96
+ - b96dd49: String `set.status` values (e.g. `'Not Found'`) now log their real status code and severity instead of `200 INFO`, and thrown 4xx errors log as WARNING (matching the success-path severity ladder) instead of always ERROR.
97
+ - 2204ee3: Transport meta now carries a JSON-serializable `durationMs` number instead of a BigInt `beforeTime` (which made `JSON.stringify` throw in every serializing transport), and transport failures are reported to stderr (rate-limited) instead of being silently swallowed.
98
+
99
+ ## 6.6.0
100
+
101
+ ### Minor Changes
102
+
103
+ - 4660c5d: Add support for request-scoped logger context propagation using `AsyncLocalStorage` and export a global `useLogger()` hook.
104
+ - 51f1ca9: Add support for structured HTTP error logging, formatting properties such as `why`, `fix`, `link`, and `internal` inside the development context tree console log.
105
+
106
+ ### Patch Changes
107
+
108
+ - 04e1a2f: Fix thread-stream worker crash when using pino-pretty in Bun by initializing pretty print streams synchronously on the main thread.
109
+
110
+ ## 6.5.1
111
+
112
+ ### Patch Changes
113
+
114
+ - 9cb2480: Add Request ID middleware, `{requestId}` custom log token, preset integrations, and expand telemetry unit tests for OTel & AI.
115
+ - bcc4ce2: Fix `autoRedact` crashing routes with a request body. `redactRequest` no longer re-attaches the original (possibly already-consumed) request stream to its logging-only clone, which avoids the `ReadableStream has already been used` error when a redacted URL/header/method coincides with a parsed body (#329).
116
+
117
+ ## 6.5.0
118
+
119
+ ### Minor Changes
120
+
121
+ - 88ecd4c: Add `logixlysia/ai` subpath with `mergeAIMetrics` for LLM usage fields on access logs.
122
+ - 23f4b42: Add `logixlysia/otel` subpath with `injectTraceContext` for optional OpenTelemetry span correlation.
123
+ - 981de26: Add `preset` option (`dev`, `prod`, `json`) with `resolveOptions` for opinionated environment defaults.
124
+ - d576f99: Add request-scoped context accumulation via `mergeContext` and `getContext`, merged into automatic access logs. Export `createLogger` and `createPluginLogger` for advanced setups.
125
+ - cbe9d2c: Add `wrapWs` for WebSocket open, message, and close lifecycle logging with request context support.
126
+
127
+ ### Patch Changes
128
+
129
+ - d3d15b4: Add `default` export conditions for Node and tsx resolution of `logixlysia`, `logixlysia/otel`, and `logixlysia/ai`.
130
+
131
+ Allow `Request` or WebSocket objects as keys for `mergeContext` and `getContext`.
132
+
133
+ ## 6.4.0
134
+
135
+ ### Minor Changes
136
+
137
+ - e285af6: Added `logQueryParams` configuration option and `{query}` token to allow including request query strings in the logs.
138
+
139
+ ### Patch Changes
140
+
141
+ - 712b2ba:
142
+ - Optimized log formatting performance by replacing multiple `.replaceAll()` calls with a single-pass regex replacement in `formatLogOutput` and `formatTimestamp`.
143
+ - Optimized `getIp` string slicing to reduce array allocations.
144
+ - Fixed a bug where padded HTTP methods (e.g., `GET`) lost their color formatting.
145
+ - Added early bailout logic to bypass allocations and system calls when logging is effectively disabled, significantly improving disabled-state benchmark performance.
146
+
147
+ ## 6.3.2
148
+
149
+ ### Patch Changes
150
+
151
+ - 85691b3: Add `autoRedact` configuration option to automatically scrub sensitive PII (emails, IPs, credit cards, JWTs) from log messages, context objects, and errors before they are outputted.
152
+
153
+ ## 6.3.1
154
+
155
+ ### Patch Changes
156
+
157
+ - 070d0be: Fix log rotation reliability and safety issues by serializing concurrent file operations, making cleanup resilient to partial failures, improving file-operation error visibility, hardening URL parsing/compression paths, and preventing rotated filename collisions under high concurrency.
158
+ - c6b87cd: Fix a race condition in file and compression lock acquisition to ensure concurrent writes and rotations are serialized correctly.
159
+
160
+ ## 6.3.0
161
+
162
+ ### Minor Changes
163
+
164
+ - b92698a: - Add `formatLogOutput` with optional multi-line context tree; keep `formatLine` as a deprecated alias returning the main line only.
165
+ - New config: `service`, `slowThreshold`, `verySlowThreshold`, `showContextTree`, `contextDepth`; default format includes `{icon}`, `{service}`, `{statusText}`, and `{speed}` tokens.
166
+ - Startup banner shows URL and optional logixlysia package version in a boxed layout.
167
+
168
+ ## 6.2.3
169
+
170
+ ### Patch Changes
171
+
172
+ - afd4c83: Fix TypeScript inference for WebSocket `ws.data` and context `store` after `.use(logixlysia())` ([#220](https://github.com/PunGrumpy/logixlysia/issues/220)).
173
+ - 0889128: Fix `ERR_IMPORT_ATTRIBUTE_MISSING` error on Node.js by avoiding ESM `package.json` import and using `createRequire(import.meta.url)` for startup banner JSON loading instead.
174
+
175
+ ## 6.2.2
176
+
177
+ ### Patch Changes
178
+
179
+ - f87971e: Fix display banner when using node adapter
180
+
181
+ ## 6.2.1
182
+
183
+ ### Patch Changes
184
+
185
+ - a58bb01: Fix WebSocket `ws.data` type inference when using logixlysia (closes #220)
186
+
187
+ The `LogixlysiaStore` index signature caused the combined store type to become `Record<string, unknown>`, overwriting the WebSocket context's `ws.data` type. Removed the index signature so `ws.data` preserves its proper type in WebSocket handlers.
188
+
189
+ - 910f7fa: Fix Node.js v25+ compatibility for startup banner (closes #231)
190
+
191
+ The banner extension imported `elysia/package.json` without the required import attribute, causing `ERR_IMPORT_ATTRIBUTE_MISSING` when running on Node.js. Added `with { type: "json" }` to the import so the package works on both Bun and Node.js.
192
+
193
+ ## 6.2.0
194
+
195
+ ### Minor Changes
196
+
197
+ - 2d90fd7: Enhance prettyPrint configuration support and documentation.
198
+
199
+ ### Patch Changes
200
+
201
+ - 449cad5: Fix prettyPrint transport handling and align documentation types.
202
+ - ecfb2e8: Publish only dist artifacts to npm.
203
+
204
+ ## 6.1.0
205
+
206
+ ### Minor Changes
207
+
208
+ - e58213b: Move `elysia` from dependencies to peerDependencies to follow best practices for Elysia plugins and avoid duplicate dependency installations.
209
+
210
+ ### Patch Changes
211
+
212
+ - 43b2ef5:
213
+
214
+ ### Added
215
+ - Add `logFilter` configuration option to filter logs by level
216
+ - Add `LogFilter` interface with `level` property to specify allowed log levels
217
+ - Implement filtering logic in logger to prevent processing of filtered log levels
218
+ - Add comprehensive tests for log filtering functionality
219
+
220
+ ### Fixed
221
+ - Fixed TypeScript error where `logFilter` property was missing in configuration type
222
+
223
+ ### Changed
224
+ - Updated TypeScript interfaces to support the new `logFilter` configuration option
225
+
226
+ - f09e27e: Fix `customLogFormat` being ignored for error logs. Error logs now properly respect the `customLogFormat` configuration instead of using a hardcoded `console.error` format. Also adds missing `RequestInfo` type definition.
227
+
228
+ ## 6.0.1
229
+
230
+ ### Patch Changes
231
+
232
+ - 0051602: Add readme in Logixlysia
233
+ - 85ee521: Update correct code
234
+
235
+ ## 6.0.0
236
+
237
+ ### Major Changes
238
+
239
+ - e953969: BREAKING CHANGE: Major update from PR #171
240
+
241
+ This release includes breaking changes that may require updates to your code. Please refer to PR #171 for detailed information about the changes.
242
+
243
+ ## [5.3.0](https://github.com/PunGrumpy/logixlysia/compare/v5.2.0...v5.3.0) (2025-10-11)
244
+
245
+ ### Features
246
+
247
+ - **log-rotation:** enhance compression handling and documentation ([e874ae4](https://github.com/PunGrumpy/logixlysia/commit/e874ae44eea76a6a0d125c3f2133a56cddfa6d49))
248
+ - **log-rotation:** implement complete rotation with interval support ([673b800](https://github.com/PunGrumpy/logixlysia/commit/673b8005b04bb1b3d8ba15e86f6df37b9a5746b6))
249
+ - **log-rotation:** implement complete rotation with interval support ([9016a51](https://github.com/PunGrumpy/logixlysia/commit/9016a51db90fb4cc0853a5adfb32eb15623a6a8f)), closes [#138](https://github.com/PunGrumpy/logixlysia/issues/138)
250
+ - **pino-integration:** enhance documentation and features for Pino integration ([67c67d7](https://github.com/PunGrumpy/logixlysia/commit/67c67d76a3a710cd4864bbc94256f01a2bef10fa))
251
+ - **pino-integration:** enhance documentation and features for Pino integration ([3968a51](https://github.com/PunGrumpy/logixlysia/commit/3968a5161f056986f3ccfcb07031142b542a872f))
252
+ - **rotation:** add time-based rotation support in shouldRotate function ([4addd18](https://github.com/PunGrumpy/logixlysia/commit/4addd182cee0aa570092b63fdebbd549294028d6))
253
+
254
+ ### Bug Fixes
255
+
256
+ - **logger:** add warning for unknown log levels in mapLogLevelToPino function ([b18b044](https://github.com/PunGrumpy/logixlysia/commit/b18b044bab81d8d0018d08924def6950a90040a2))
257
+ - **logger:** enhance Pino output handling in emitPinoLog function ([cd9d4b7](https://github.com/PunGrumpy/logixlysia/commit/cd9d4b7d37883fad90e79e91e6f8a7a753dbfff6))
258
+ - **logger:** enhance transport handling and client IP logging ([e81d81d](https://github.com/PunGrumpy/logixlysia/commit/e81d81d70b3694fe81db1773a8cbce82af1edd29))
259
+ - **logger:** improve error handling in log function ([a1874e1](https://github.com/PunGrumpy/logixlysia/commit/a1874e120154600baaed4109a2b6fe6f99db3181))
260
+ - **logger:** improve error stack handling in log function ([ab01fb2](https://github.com/PunGrumpy/logixlysia/commit/ab01fb2170c204e35670ab01b4f42e1187c044ef))
261
+ - **pino-integration:** remove outdated best practices link from documentation ([2cb8b0c](https://github.com/PunGrumpy/logixlysia/commit/2cb8b0cba487e77c1bd41acf525f0cd7ceb6f93c))
262
+ - **rotation:** improve cache check in shouldRotateByTime function ([9c5ea06](https://github.com/PunGrumpy/logixlysia/commit/9c5ea06e8cbdad2bb8a95369be54daa15cb37d21))
263
+ - **rotation:** use basename for file path extraction in getRotatedFiles function ([60f27b0](https://github.com/PunGrumpy/logixlysia/commit/60f27b09f33dc3490b73a036465bf896a40551ca))
264
+
265
+ ## [5.2.0](https://github.com/PunGrumpy/logixlysia/compare/v5.1.1...v5.2.0) (2025-09-21)
266
+
267
+ ### Features
268
+
269
+ - **logger:** add option for disable internal log ([0a25e46](https://github.com/PunGrumpy/logixlysia/commit/0a25e461b001453c750869df014a30f3fbe7ef0d)), closes [#125](https://github.com/PunGrumpy/logixlysia/issues/125)
270
+ - **logger:** add options for file and transport logging control ([8e56b0f](https://github.com/PunGrumpy/logixlysia/commit/8e56b0f39bbd80bd85ed93dc3beea6888ef3f63d))
271
+
272
+ ## [5.1.1](https://github.com/PunGrumpy/logixlysia/compare/v5.1.0...v5.1.1) (2025-08-10)
273
+
274
+ ### Bug Fixes
275
+
276
+ - preserve existing state when initializing logixlysia store ([484840e](https://github.com/PunGrumpy/logixlysia/commit/484840eab642c1c91f63f07c04258c77e677274b)), closes [#108](https://github.com/PunGrumpy/logixlysia/issues/108)
277
+
278
+ ## [5.1.0](https://github.com/PunGrumpy/logixlysia/compare/v5.0.0...v5.1.0) (2025-06-24)
279
+
280
+ ### Features
281
+
282
+ - **linter:** add Ultracite cursor rules for improved accessibility and code quality ([94602aa](https://github.com/PunGrumpy/logixlysia/commit/94602aa3e733c22b849c19e1afd474a500dbbff1))
283
+ - **logging:** add custom log methods and context support ([7c0c0b9](https://github.com/PunGrumpy/logixlysia/commit/7c0c0b995775ea058853b872d7860b4f789cdb45)), closes [#94](https://github.com/PunGrumpy/logixlysia/issues/94)
284
+ - **tests:** add comprehensive tests for route logger functionality ([3ed0670](https://github.com/PunGrumpy/logixlysia/commit/3ed0670fe6cfae1717e4cdc0c882943f827fad96))
285
+
286
+ ### Bug Fixes
287
+
288
+ - **logging:** improve context serialization in log messages ([ac74afc](https://github.com/PunGrumpy/logixlysia/commit/ac74afc8b10b4b0e3d34144dcb7053da52653738))
289
+ - **logging:** prevent duplicate logging when using custom logs ([358f319](https://github.com/PunGrumpy/logixlysia/commit/358f319419e78bc1a206535506ddd6b84d312bfe))
290
+ - **logging:** set hasCustomLog to false in logixlysia function ([807d0ec](https://github.com/PunGrumpy/logixlysia/commit/807d0ec09df051ad2a5b9cd5f0d85026424ad06f))
291
+
292
+ ## [5.0.0](https://github.com/PunGrumpy/logixlysia/compare/logixlysia-v4.2.7...logixlysia-v5.0.0) (2025-05-13)
293
+
294
+ ### Features
295
+
296
+ - add custom logger support ([9ca6874](https://github.com/PunGrumpy/logixlysia/commit/9ca68744da198f02ee601f9facb3ad8ffbbc19f9)), closes [#93](https://github.com/PunGrumpy/logixlysia/issues/93)
297
+
298
+ ### Bug Fixes
299
+
300
+ - improve server configuration defaults ([91bceb7](https://github.com/PunGrumpy/logixlysia/commit/91bceb797e38b902edb6d36b79399e05a8332e04)), closes [#96](https://github.com/PunGrumpy/logixlysia/issues/96)
301
+
302
+ ## [4.2.2](https://github.com/PunGrumpy/logixlysia/compare/v4.2.1...v4.2.2) (2025-04-14)
303
+
304
+ ### Bug Fixes
305
+
306
+ - **package:** remove unused devDependencies for cleaner setup ([7dab60f](https://github.com/PunGrumpy/logixlysia/commit/7dab60fcbccac59f8ac092ab4024c6ca249d00c2))
307
+
308
+ ## [4.2.1](https://github.com/PunGrumpy/logixlysia/compare/v4.2.0...v4.2.1) (2025-04-13)
309
+
310
+ ### Bug Fixes
311
+
312
+ - **ci:** replace lint step with Reviewdog integration for enhanced linting feedback ([81cd883](https://github.com/PunGrumpy/logixlysia/commit/81cd883b29723ffe640cc99dff9716a1613989ef))
313
+
314
+ ## [4.2.0](https://github.com/PunGrumpy/logixlysia/compare/v4.1.2...v4.2.0) (2025-04-13)
315
+
316
+ ### Features
317
+
318
+ - **docs:** add screenshot to documentation introduction ([800bb17](https://github.com/PunGrumpy/logixlysia/commit/800bb17dcfda88699cd7a0a2dc2e199e5704ce61))
319
+ - **website:** add new components and integrate react-fast-marquee ([6332f62](https://github.com/PunGrumpy/logixlysia/commit/6332f622c22fccf4cbadfb2a0099b9fac723f61a))
320
+ - **website:** add Open Graph image for enhanced social sharing ([de35d41](https://github.com/PunGrumpy/logixlysia/commit/de35d413bf6a10b06933eb2619d3cb6459618c3e))
321
+ - **website:** add transparent mode to navigation title ([9c01757](https://github.com/PunGrumpy/logixlysia/commit/9c01757f8808b5792b792fc1ed56e5b6e26603d2))
322
+ - **website:** add website documentation ([82e281c](https://github.com/PunGrumpy/logixlysia/commit/82e281cd5c08fa948ecf103eb70f218e61029142))
323
+ - **website:** enhance logging features and update documentation ([fa7ea45](https://github.com/PunGrumpy/logixlysia/commit/fa7ea45ae8c535a22b52e94a46df5931009e013f))
324
+ - **website:** initialize new documentation website with Fumadocs ([c864d9f](https://github.com/PunGrumpy/logixlysia/commit/c864d9f00ea6d0250f2db8b20a994975da18185e))
325
+ - **website:** integrate GitHub info component into layout ([5cd282c](https://github.com/PunGrumpy/logixlysia/commit/5cd282c072e56d90a7554a78dad1f27e8eb13400))
326
+
327
+ ### Bug Fixes
328
+
329
+ - **docs:** correct license information in documentation ([e64f156](https://github.com/PunGrumpy/logixlysia/commit/e64f1565a2100a08ee324ddf68769726dcc6d9ff))
330
+ - **docs:** update file logging examples for clarity and consistency ([1d8653f](https://github.com/PunGrumpy/logixlysia/commit/1d8653f5aa97f8b6d829a10c0a510fc5a5b7dcae))
331
+ - **docs:** update help section for user support ([84e5052](https://github.com/PunGrumpy/logixlysia/commit/84e5052ddf4ef8e636d68be113d866df2d13fd09))
332
+ - **playground:** correct class name syntax for overflow visibility ([25ed919](https://github.com/PunGrumpy/logixlysia/commit/25ed919c1592129d8495afbc2927befb0c431fa0))
333
+ - **website:** adjust z-index for background image and hero component ([af593a7](https://github.com/PunGrumpy/logixlysia/commit/af593a709d625df06f2f0e7ecff55764be46cdd5))
334
+ - **website:** adjust z-index for hero component to improve visibility ([4cc144e](https://github.com/PunGrumpy/logixlysia/commit/4cc144e50c5e0e869e62c3821edd2216acf4cacd))
335
+ - **website:** simplify sidebar configuration in layout component ([dc7e479](https://github.com/PunGrumpy/logixlysia/commit/dc7e47962085c4922dcfaad83e1ce0e38dcfeff0))
336
+ - **website:** update logo assets and adjust class names ([18c8c57](https://github.com/PunGrumpy/logixlysia/commit/18c8c57a2337f3242e77eb0234afee487039f554))
337
+ - **website:** update sidebar configuration to include collapsible property ([2d27ee3](https://github.com/PunGrumpy/logixlysia/commit/2d27ee31b3eeb79505a70dee2fef214a45fb1a9e))
338
+
339
+ ## [4.1.2](https://github.com/PunGrumpy/logixlysia/compare/v4.1.1...v4.1.2) (2025-02-24)
340
+
341
+ ### Bug Fixes
342
+
343
+ - **logixlysia:** ensure message is a string in response headers ([2f9eeee](https://github.com/PunGrumpy/logixlysia/commit/2f9eeeeb1ec1ab7454e6633c28aa112963f54ed6)), closes [#74](https://github.com/PunGrumpy/logixlysia/issues/74)
344
+
345
+ ## [4.1.1](https://github.com/PunGrumpy/logixlysia/compare/v4.1.0...v4.1.1) (2025-01-31)
346
+
347
+ ### Bug Fixes
348
+
349
+ - **package:** wrong place @elysiajs/swagger and move to devDependencies ([a5e1a96](https://github.com/PunGrumpy/logixlysia/commit/a5e1a96606f53883a50331a94c1ba844dff67dc3))
350
+
351
+ ## [4.1.0](https://github.com/PunGrumpy/logixlysia/compare/v4.0.0...v4.1.0) (2025-01-31)
352
+
353
+ ### Features
354
+
355
+ - **logging:** add status string parsing and error handling ([32800ac](https://github.com/PunGrumpy/logixlysia/commit/32800acb0fbfdf957e2975b5773b0a350e3af0d8)), closes [#71](https://github.com/PunGrumpy/logixlysia/issues/71)
356
+
357
+ ## [4.0.0](https://github.com/PunGrumpy/logixlysia/compare/v3.7.0...v4.0.0) (2024-10-28)
358
+
359
+ ### ⚠ BREAKING CHANGES
360
+
361
+ - **timestamp:** The timestamp format in logs will now respect the new timestamp configuration options when provided
362
+
363
+ ### Features
364
+
365
+ - **timestamp:** add customize timestamp formatting ([5a4e2a5](https://github.com/PunGrumpy/logixlysia/commit/5a4e2a5230443761d8c2ca99d9ebc586ff26a8c0)), closes [#69](https://github.com/PunGrumpy/logixlysia/issues/69)
366
+
367
+ ## [3.7.0](https://github.com/PunGrumpy/logixlysia/compare/v3.6.2...v3.7.0) (2024-09-26)
368
+
369
+ ### Features
370
+
371
+ - **optional:** add startup message config ([#66](https://github.com/PunGrumpy/logixlysia/pull/66)) ([c7a76db](https://github.com/PunGrumpy/logixlysia/commit/c7a76dbc0f30f4c9c607b52dedc49979e26b67ec)) by [@n0ky4](https://github.com/n0ky4)
372
+
373
+ ## [3.6.2](https://github.com/PunGrumpy/logixlysia/compare/v3.6.1...v3.6.2) (2024-09-18)
374
+
375
+ ### Bug Fixes
376
+
377
+ - **logtofile:** store error to log file ([1bb2d07](https://github.com/PunGrumpy/logixlysia/commit/1bb2d07ae0c815742a9eb7c930ac8487ac287b2c)), closes [#63](https://github.com/PunGrumpy/logixlysia/issues/63)
378
+
379
+ ## [3.6.1](https://github.com/PunGrumpy/logixlysia/compare/v3.6.0...v3.6.1) (2024-08-21)
380
+
381
+ ### Performance Improvements
382
+
383
+ - **logger:** improve performance and fix TypeScript errors ([d3ed751](https://github.com/PunGrumpy/logixlysia/commit/d3ed751041443b9bd2ce53350994e1443df40971))
384
+
385
+ ## [3.6.0](https://github.com/PunGrumpy/logixlysia/compare/v3.5.0...v3.6.0) (2024-07-24)
386
+
387
+ ### Features
388
+
389
+ - **custom-log:** add unix epoch timestamp option on `customLogFormat` configuration ([58d3e5b](https://github.com/PunGrumpy/logixlysia/commit/58d3e5b89bfef86aed1f5daa70d9a39982750073)), closes [#56](https://github.com/PunGrumpy/logixlysia/issues/56)
390
+ - **transports:** add custom tranporter support for flexible logging ([69e1b89](https://github.com/PunGrumpy/logixlysia/commit/69e1b8991d323d8463fb81cf5bf1b441f678318b)), closes [#51](https://github.com/PunGrumpy/logixlysia/issues/51)
391
+
392
+ ## [3.5.0](https://github.com/PunGrumpy/logixlysia/compare/v3.4.0...v3.5.0) (2024-07-11)
393
+
394
+ ### Features
395
+
396
+ - **config:** add option to toggle server start banner display ([c975cd6](https://github.com/PunGrumpy/logixlysia/commit/c975cd6da94e39d055cdf7bc43cc1ed1eec4971e)), closes [#52](https://github.com/PunGrumpy/logixlysia/issues/52)
397
+
398
+ ## [3.4.0](https://github.com/PunGrumpy/logixlysia/compare/v3.3.2...v3.4.0) (2024-06-17)
399
+
400
+ ### Features
401
+
402
+ - **logger:** add file logging capability ([6d913a3](https://github.com/PunGrumpy/logixlysia/commit/6d913a3dcc6cbba40bcaa4b6c4c4a4b474a90969))
403
+
404
+ ### Bug Fixes
405
+
406
+ - **logger:** remove ANSI color codes from log files ([df42315](https://github.com/PunGrumpy/logixlysia/commit/df423151399f9436121b0d5d4a9b0424befdc835))
407
+
408
+ ## [3.3.2](https://github.com/PunGrumpy/logixlysia/compare/v3.3.1...v3.3.2) (2024-06-06)
409
+
410
+ ### Bug Fixes
411
+
412
+ - **npm-ignore:** accidentally ignore `tsconfig.json` ([85997f7](https://github.com/PunGrumpy/logixlysia/commit/85997f7dd8bb22b4811a7555e0a56e0cfb3ee269))
413
+
414
+ ## [3.3.1](https://github.com/PunGrumpy/logixlysia/compare/v3.3.0...v3.3.1) (2024-06-01)
415
+
416
+ ### Bug Fixes
417
+
418
+ - **deps:** move `ESLint` and related packages to dev dependencies ([98de50c](https://github.com/PunGrumpy/logixlysia/commit/98de50c6c3bffc5939963ebd04563204c7c70793)), closes [#46](https://github.com/PunGrumpy/logixlysia/issues/46)
419
+
420
+ ## [3.3.0](https://github.com/PunGrumpy/logixlysia/compare/v3.2.0...v3.3.0) (2024-05-22)
421
+
422
+ ### Features
423
+
424
+ - **color:** new color for methods (matching Postman color) ([0528886](https://github.com/PunGrumpy/logixlysia/commit/0528886ef9fdaa466e4b78b46fb09d31731b0520))
425
+
426
+ ## [3.2.0](https://github.com/PunGrumpy/logixlysia/compare/v3.1.0...v3.2.0) (2024-05-07)
427
+
428
+ ### Features
429
+
430
+ - update logger function name for clarity ([9badffc](https://github.com/PunGrumpy/logixlysia/commit/9badffc286fc13feda9eeffd28881990ae437c9f))
431
+
432
+ ## [3.1.0](https://github.com/PunGrumpy/logixlysia/compare/v3.0.2...v3.1.0) (2024-04-09)
433
+
434
+ ### Features
435
+
436
+ - **logger:** add log filtering functional ([af7d9ec](https://github.com/PunGrumpy/logixlysia/commit/af7d9ec5b2bb5ff5942d1a586be23a9d23a2c1cf)), closes [#38](https://github.com/PunGrumpy/logixlysia/issues/38)
437
+
438
+ ### Bug Fixes
439
+
440
+ - CI/CD GitHub Actions ([3c40092](https://github.com/PunGrumpy/logixlysia/commit/3c40092bd0ac7bf8bd601a299453cf5080224234))
441
+
442
+ ## [3.0.2](https://github.com/PunGrumpy/logixlysia/compare/v3.0.1...v3.0.2) (2024-04-08)
443
+
444
+ ### Bug Fixes
445
+
446
+ - **logger:** add `config` property for logging configuration ([27d80eb](https://github.com/PunGrumpy/logixlysia/commit/27d80eb6b0c3a4a40a96738b235d9bc6b117c804))
447
+
448
+ ## [3.0.1](https://github.com/PunGrumpy/logixlysia/compare/v3.0.0...v3.0.1) (2024-04-08)
449
+
450
+ ### Bug Fixes
451
+
452
+ - **logger:** use correct status code in error log message ([a3ec49c](https://github.com/PunGrumpy/logixlysia/commit/a3ec49cd3fc1dc7f01a29b21e4de9cf543329c43)), closes [#33](https://github.com/PunGrumpy/logixlysia/issues/33)
453
+
454
+ ## [3.0.0](https://github.com/PunGrumpy/logixlysia/compare/v2.3.1...v3.0.0) (2024-04-08)
455
+
456
+ ### ⚠ BREAKING CHANGES
457
+
458
+ - Added support for custom log format in the logger
459
+ - Enhanced flexibility for define thier preferred log message structure
460
+
461
+ ### Features
462
+
463
+ - **options:** add support for custom log format ([acc9380](https://github.com/PunGrumpy/logixlysia/commit/acc9380ea25691e7d7fec175094cb6a9878b6c69))
464
+
465
+ ## [2.3.1](https://github.com/PunGrumpy/logixlysia/compare/v2.3.0...v2.3.1) (2024-04-07)
466
+
467
+ ### Bug Fixes
468
+
469
+ - **index:** remove duplicate logging when options IP enabled ([2e99bd6](https://github.com/PunGrumpy/logixlysia/commit/2e99bd628b7160fb43161ca08e49f711b74e8666))
470
+
471
+ ## [2.3.0](https://github.com/PunGrumpy/logixlysia/compare/v2.2.3...v2.3.0) (2024-04-06)
472
+
473
+ ### Features
474
+
475
+ - **logger:** handle HTTP errors and log with appropriate status code ([276b3c4](https://github.com/PunGrumpy/logixlysia/commit/276b3c41334bcf1cefd032ae11f71fb8cda2bc9a)), closes [#24](https://github.com/PunGrumpy/logixlysia/issues/24)
476
+
477
+ ## [2.2.3](https://github.com/PunGrumpy/logixlysia/compare/v2.2.2...v2.2.3) (2024-04-06)
478
+
479
+ ### Bug Fixes
480
+
481
+ - **error-log:** add global to `onError` ([e217baa](https://github.com/PunGrumpy/logixlysia/commit/e217baad9f72fa3e866f959f371768ed2ed22e33))
482
+ - **ts2488:** that method return an iterator ([35da93f](https://github.com/PunGrumpy/logixlysia/commit/35da93f75e34ff212ddd31ff951425551f31c764))
483
+
484
+ ## [2.2.2](https://github.com/PunGrumpy/logixlysia/compare/v2.2.1...v2.2.2) (2024-04-06)
485
+
486
+ ### Bug Fixes
487
+
488
+ - **eslint:** change to use `eslint.config.cjs` instead `.eslintrc.cjs` ([506a33b](https://github.com/PunGrumpy/logixlysia/commit/506a33bc6540614a0b912ddedec109b2215affa3))
489
+ - package.json to reduce vulnerabilities ([f768e88](https://github.com/PunGrumpy/logixlysia/commit/f768e88acd7d7c1faf32dab06a467c2cd6ba8f9c))
490
+
491
+ ## [2.2.1](https://github.com/PunGrumpy/logixlysia/compare/v2.2.0...v2.2.1) (2024-03-19)
492
+
493
+ ### Bug Fixes
494
+
495
+ - **index:** remove `onBeforeHandle` for avoid repeat logging ([4c6f0b9](https://github.com/PunGrumpy/logixlysia/commit/4c6f0b9912a4319ada15ad2a5110a9ed34f08a11))
496
+
497
+ ### Reverts
498
+
499
+ - **deps:** new come back to old version ([361ac6b](https://github.com/PunGrumpy/logixlysia/commit/361ac6b2821ac897c1a4658cbfa1b5eb1a190804))
500
+
501
+ ## [2.2.0](https://github.com/PunGrumpy/logixlysia/compare/v2.1.0...v2.2.0) (2024-03-19)
502
+
503
+ ### Features
504
+
505
+ - **options:** add show ip ([4e997c5](https://github.com/PunGrumpy/logixlysia/commit/4e997c557e9aef6046a93e0cab9fe11a87df3430))
506
+
507
+ ### Bug Fixes
508
+
509
+ - **logger:** change to use array and push them ([3feefb7](https://github.com/PunGrumpy/logixlysia/commit/3feefb7a8dddc42c4eec54de40ab9dd8d5c70e70))
510
+
511
+ ## [2.1.0](https://github.com/PunGrumpy/logixlysia/compare/v2.0.2...v2.1.0) (2024-01-25)
512
+
513
+ ### Features
514
+
515
+ - **logger:** implement asynchronous logging functionality ([1017af0](https://github.com/PunGrumpy/logixlysia/commit/1017af0a28bd6121a85ec814a9177fd303c2572c))
516
+
517
+ ## [2.0.2](https://github.com/PunGrumpy/logixlysia/compare/v2.0.1...v2.0.2) (2024-01-07)
518
+
519
+ ### Bug Fixes
520
+
521
+ - **logger:** change time from `iso` to `local` ([33ff28a](https://github.com/PunGrumpy/logixlysia/commit/33ff28a4a41db1dda7ca224e4807bd2451b95985))
522
+
523
+ ## [2.0.1](https://github.com/PunGrumpy/logixlysia/compare/v2.0.0...v2.0.1) (2024-01-03)
524
+
525
+ ### Bug Fixes
526
+
527
+ - **index:** elysia `0.8.8` doesn't contain `app` variable ([72f2314](https://github.com/PunGrumpy/logixlysia/commit/72f2314adf392b2e5387bb731f1417bf689e2dd9))
528
+
529
+ ## [2.0.0](https://github.com/PunGrumpy/logixlysia/compare/v1.0.0...v2.0.0) (2023-11-19)
530
+
531
+ ### Features
532
+
533
+ - **ci/cd:** separate deploy workflows from ci workflows ([e0344ae](https://github.com/PunGrumpy/logixlysia/commit/e0344ae32f711d140b1c914164e8eb7a57181558))
534
+
535
+ ## 1.0.0 (2023-11-18)
536
+
537
+ ### Features
538
+
539
+ - add example for test ([8f0f1ee](https://github.com/PunGrumpy/logixlysia/commit/8f0f1ee01de5e5c639687bf0971f0347c3516ed0))
540
+ - add log on start ([f1adeb9](https://github.com/PunGrumpy/logixlysia/commit/f1adeb9c620b42a2639ea6f01fa3e0ebd583ee8f))
541
+ - add logger format and enhance logging functionality ([c0887e8](https://github.com/PunGrumpy/logixlysia/commit/c0887e8eed6142a476d2fd7eb343ef6933e26d31))
542
+ - add new style on logging ([f1d9583](https://github.com/PunGrumpy/logixlysia/commit/f1d95832eacd6528c23454b914c61e09b4c1b83a))
543
+ - **ci:** add google automated workflows ([526e069](https://github.com/PunGrumpy/logixlysia/commit/526e0695029b0235a268445fd1c72b267c030c13))
544
+ - setting environment ([6f5e553](https://github.com/PunGrumpy/logixlysia/commit/6f5e553744999c70de1d8fb1b42a5eb7b75d8798))
545
+
546
+ ### Bug Fixes
547
+
548
+ - change name ([ee0c164](https://github.com/PunGrumpy/logixlysia/commit/ee0c1645be16a582c4df03874fdf0712e27a9e6a))
549
+ - change to use chalk instead piccolors ([b2fe4f5](https://github.com/PunGrumpy/logixlysia/commit/b2fe4f5a8dce51731e1729b9b0f2c7a15d280978))
550
+ - **types:** add types ([38e1f63](https://github.com/PunGrumpy/logixlysia/commit/38e1f63b4b92f4829772d638d45d7bad8182dbdc))
551
+ - update jsdocs and add new banner ([226c7eb](https://github.com/PunGrumpy/logixlysia/commit/226c7ebac504f661e58a9581c54e1937dfbea4a8))
552
+ - **utils:** update jsdocs ([8cab996](https://github.com/PunGrumpy/logixlysia/commit/8cab996e757d997d3a05183e85d4bfe684fdb11d))
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 PunGrumpy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -42,6 +42,20 @@ const app = new Elysia({
42
42
  app.listen(3000)
43
43
  ```
44
44
 
45
+ ## `✨` Features
46
+
47
+ - **Request context**: accumulate fields with `mergeContext` into a context tree. [Docs](https://logixlysia.vercel.app/docs/features/request-context)
48
+ - **Presets**: `dev`, `prod`, and `json` output. [Docs](https://logixlysia.vercel.app/docs/configuration)
49
+ - **File logging**: writes to disk with rotation by size, age, or count. [Docs](https://logixlysia.vercel.app/docs/features/file-logging)
50
+ - **Adapters**: nine built-in destinations, Axiom, Better Stack, ClickHouse, Datadog, HyperDX, Loki, OTLP, PostHog, and Sentry. [Docs](https://logixlysia.vercel.app/docs/adapters/overview)
51
+ - **Sampling**: head and tail sampling controls log volume. [Docs](https://logixlysia.vercel.app/docs/features/sampling)
52
+ - **Enrichers**: add trace, user agent, geo, and size fields to every request. [Docs](https://logixlysia.vercel.app/docs/features/enrichers)
53
+ - **Redaction**: `autoRedact` masks PII by pattern; `logixlysia/desertant` adds neural redaction. [Config docs](https://logixlysia.vercel.app/docs/configuration#autoredact), [Neural redaction docs](https://logixlysia.vercel.app/docs/integrations/desertant)
54
+ - **Structured errors**: `HttpError` carries `why`, `fix`, and `link`. [Docs](https://logixlysia.vercel.app/docs/api-reference)
55
+ - **Request IDs**: read from the incoming request or generated for every request. [Docs](https://logixlysia.vercel.app/docs/features/request-id)
56
+ - **OpenTelemetry**: trace correlation and AI usage metrics on the access log. [Docs](https://logixlysia.vercel.app/docs/integrations/otel)
57
+ - **WebSocket logging**: lifecycle logs via `wrapWs`. [Docs](https://logixlysia.vercel.app/docs/features/websocket)
58
+
45
59
  ## `📚` Documentation
46
60
 
47
61
  Check out the [website](https://logixlysia.vercel.app) for more detailed documentation and examples.