Repository navigation
Releases: evloghq/evlog
Release list
evlog@2.34.0
What's Changed
Features 🚀
- The
evlog/viteplugin now readsevlog.config.tsfrom the Vite root, the same file the CLI, Nuxt and Nitro read, so Vite-based apps (TanStack Start, React Router, SvelteKit, Astro) can keep their settings in the shared file by @evlogai[bot] in #918
Bug Fixes 🐞
pnpm dlx evlog <command>andpnpm dlx @evlog/cli <command>work on pnpm 11 instead of hanging by @evlogai[bot] in #946- The Nitro plugin and the client ingest route no longer throw
Cannot read properties of undefined (reading 'catch')on every request under Nitro 3 by @nathanchase in #927
Continuous Integration 🔄
Documentation 📚
- docs: use npx evlog for one-off evlog and skills commands by @HugoRCD in #950
- docs: use pnpm dlx for one-off evlog and skills commands by @HugoRCD in #922
Tests 🧪
- test(effect): check a failed unit's Sentry issue shares the wide event trace id by @JustYannicc in #921
Dependency Updates 📦
- chore(deps): update all non-major dependencies by @renovate[bot] in #957
- chore(deps): update all non-major dependencies by @renovate[bot] in #955
Changelog: https://github.com/evloghq/evlog/blob/evlog@2.34.0/packages/evlog/CHANGELOG.md#2340
Full Changelog: https://github.com/evloghq/evlog/compare/evlog@2.33.1...evlog@2.34.0
@evlog/signals@0.2.2
What's Changed
Dependency Updates 📦
- chore(deps): update all non-major dependencies by @renovate[bot] in #957
EvaluationQuestionandEvaluationAnswercover only theboolean,choiceandscoretypes a signal asks by @renovate[bot] in #955
Changelog: https://github.com/evloghq/evlog/blob/@evlog/signals@0.2.2/packages/signals/CHANGELOG.md#022
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/signals@0.2.1...@evlog/signals@0.2.2
@evlog/cli@0.11.1
What's Changed
Bug Fixes 🐞
evlog logsand the NuxtHub log viewer now show the HTTP status of an error fromerror.status, falling back toerror.statusCodefor files written before v3 by @evlogai[bot] in #949evlog initnow writesevlog.config.tswithprocess.env.NODE_ENVin place ofimport.meta.devfor Nuxt, Nitro and TanStack Start, the same condition Next, Hono, Express and Fastify already used by @evlogai[bot] in #945
Documentation 📚
- docs: use npx evlog for one-off evlog and skills commands by @HugoRCD in #950
- docs: use pnpm dlx for one-off evlog and skills commands by @HugoRCD in #922
Dependency Updates 📦
- chore(deps): update all non-major dependencies by @renovate[bot] in #957
- chore(deps): update all non-major dependencies by @renovate[bot] in #955
Changelog: https://github.com/evloghq/evlog/blob/@evlog/cli@0.11.1/packages/cli/CHANGELOG.md#0111
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/cli@0.11.0...@evlog/cli@0.11.1
evlog@3.0.0-beta.1
What's Changed
Breaking Changes 💥
- Two optional peer ranges change by @HugoRCD in #938
evlog/nitrois the Nitro 3 module, and the nitropack (Nitro 2) module moves toevlog/nitro/v2by @HugoRCD in #936- The HTTP error body sent by the Nitro, Nuxt and SvelteKit error handlers carries the status in
statusand the text inmessageonly by @HugoRCD in #937 EvlogErrorno longer has thestatusCode,statusTextandstatusMessagegetters, deprecated since 2.x by @HugoRCD in #935- A logged
EvlogErrorcarriescode,why,fixandlinkonce, at the top oferrorby @evlogai[bot] in #900 statusis optional onEvlogError, oncreateError()options, and on error catalog entries (defineErrorCatalog,defineError) by @evlogai[bot] in #900- OTLP records default to the
compactshape with OpenTelemetry semantic convention attributes by @HugoRCD in #933 - Remove
createPostHogEventsDrain()and thePostHogEventsConfigtype fromevlog/posthogby @HugoRCD in #931 - Remove the deprecated credential aliases by @HugoRCD in #930
createLoggerStorageis no longer exported fromevlog/toolkitby @HugoRCD in #932- Remove the
evlog/browserentry by @HugoRCD in #929
Features 🚀
- HyperDX and Sazabi now accept
semanticConventions, and HyperDX also acceptsrecordShape, so a 2.x user can keep the 2.x output withrecordShape: 'json'andsemanticConventions: falseby @evlogai[bot] in #944 - feat(vite): read evlog.config.ts in the vite plugin by @evlogai[bot] in #918
Bug Fixes 🐞
- fix(nitro): accept an undefined callHook result when draining by @nathanchase in #927
log.set(),emit()and the redaction production turns on by default do less work per event by @HugoRCD in #905- The
bearerredaction built-in now runs before every other built-in, so a Bearer token is masked whole by @HugoRCD in #910 - The
ibanredaction built-in masks a spaced IBAN whole whencreditCardis also on, as it is with the defaultredact: trueby @HugoRCD in #907 - A cycle in the context passed to
createLogger()orcreateRequestLogger(), or in the fields passed toemit(), is logged as'[Circular]', as it already was forset()by @HugoRCD in #907 log.set()only merges plain objects by @HugoRCD in #907- Keep evlog 3's process-wide state apart from evlog 2 by @HugoRCD in #902
Documentation 📚
Tests 🧪
- test(effect): check a failed unit's Sentry issue shares the wide event trace id by @JustYannicc in #921
Dependency Updates 📦
- chore: stop publishing source maps by @evlogai[bot] in #860
- chore(repo): require node 22 or later by @evlogai[bot] in #861
Other Changes 🔨
- chore: merge main into v3 by @HugoRCD in #960
- test(core): cover status-less EvlogError across integrations and tail sampling by @evlogai[bot] in #941
- docs: document link wherever why and fix are by @HugoRCD in #934
- test(bench): compare loggers on equivalent output, add LogTape and LogLayer by @HugoRCD in #909
- chore(repo): drop 2.33 changesets left on v3 after 3.0.0-beta.0 by @evlogai[bot] in #904
- fix(core): log errors with status only, drop statusCode, statusText and statusMessage by @evlogai[bot] in #894
Changelog: https://github.com/evloghq/evlog/blob/evlog@3.0.0-beta.1/packages/evlog/CHANGELOG.md#300-beta1
Full Changelog: https://github.com/evloghq/evlog/compare/evlog@2.33.1...evlog@3.0.0-beta.1
@evlog/cli@1.0.0-beta.1
What's Changed
Features 🚀
evlog upgrademovescreateLoggerStorageimports and re-exports fromevlog/toolkittoevlog/toolkit/storageby @HugoRCD in #954evlog upgraderenames the removed credential options toapiKeyby @HugoRCD in #953evlog upgraderewritescreatePostHogEventsDrain(options)tocreatePostHogDrain({ mode: 'events', ...options })andPostHogEventsConfigtoPostHogConfigby @HugoRCD in #953- Add
evlog upgrade, which migrates a project to evlog 3 by @evlogai[bot] in #870 evlog initwrites the Nitro import for the evlog major installed in the project by @HugoRCD in #936
Bug Fixes 🐞
Documentation 📚
Other Changes 🔨
- chore: merge main into v3 by @HugoRCD in #960
- feat(cli): rename the axiom and better stack credential options in evlog upgrade by @HugoRCD in #952
- docs: group the v3 migration guide and match its anchors to the upgrade findings by @HugoRCD in #948
- docs: document link wherever why and fix are by @HugoRCD in #934
Changelog: https://github.com/evloghq/evlog/blob/@evlog/cli@1.0.0-beta.1/packages/cli/CHANGELOG.md#100-beta1
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/cli@1.0.0-beta.0...@evlog/cli@1.0.0-beta.1
evlog@2.33.1
What's Changed
Bug Fixes 🐞
createEvlogHooks().handleErrorandevlogHandleError()now accept SvelteKit 3'shandleErrorinput (kind,error,event) and type-check as Kit 3'sHandleServerErrorby @HugoRCD in #913- The
bearerredaction built-in now runs before every other built-in, so a Bearer token is masked whole by @HugoRCD in #906 - The
ibanredaction built-in masks a spaced IBAN whole whencreditCardis also on, as it is with the defaultredact: trueby @HugoRCD in #906 - A cycle in the context passed to
createLogger()orcreateRequestLogger(), or in the fields passed toemit(), is logged as'[Circular]', as it already was forset()by @HugoRCD in #906 log.set()only merges plain objects by @HugoRCD in #906
Changelog: https://github.com/evloghq/evlog/blob/evlog@2.33.1/packages/evlog/CHANGELOG.md#2331
Full Changelog: https://github.com/evloghq/evlog/compare/evlog@2.33.0...evlog@2.33.1
evlog@2.33.0
What's Changed
Features 🚀
- Add
evlog/effectfor Effect 4, in beta by @JustYannicc in #855 - feat(cli): offer loki and clickhouse in evlog init by @evlogai[bot] in #882
- feat(sazabi): list the sazabi adapter across docs and offer it in evlog init by @evlogai[bot] in #881
- Warn at runtime when a removed v2 API is used by @evlogai[bot] in #872
- Add
issuesto the Sentry drain by @JustYannicc in #856
Bug Fixes 🐞
log.set()no longer exposes fields hidden by atoJSONmethod when the same key is set twice by @evlogai[bot] in #898- The published packages no longer ship
.mapfiles by @evlogai[bot] in #895 - HTTP drains now retry a
408 Request Timeoutresponse, with the same backoff and attempt limit as429and5xxby @HugoRCD in #893 evlog/evereportsai.modelandai.provideragain on eve 0.76, which moved the model id fromsession.startedtostep.startedby @HugoRCD in #892- Fix the Nuxt client ingest endpoint (
/api/_evlog/ingest) answering 500 to a request whoseOriginisnull, as sandboxed iframes send, or whoseRefereris not a URL by @HugoRCD in #890 - Fix the local stream server (
startStreamServer,stream: truein Nuxt and Next.js) accepting browser pages from other sites when notokenis set by @HugoRCD in #889 - A wide event no longer gets lost when the same plain object is logged as a field and then thrown as an error's
data, for examplelog.warn('failed', { error: payload })followed bythrow createError({ data: payload })by @nathanchase in #884 - Fix the built-in
emailandjwtredaction patterns, which took quadratic time on long strings by @HugoRCD in #867 - In the browser, errors are serialized the way the server logger does it by @HugoRCD in #877
- The Sentry drain's
issuesoption now reads an error'sstatusbefore its legacystatusCodewhen it decides whether an event is a 4xx by @evlogai[bot] in #880 - In the browser, an
Errorinside an event field is now serialized the same way aslog.error(err), withname,message,stack,causeand fields such asstatusandstatusCode, instead of being sent as{}by @vasilistotskas in #875 - A logged error no longer carries the
dataorinternalfields that its owntoJSONleaves out, on the server and in the browser, whether passed aslog.error(err)or inside an event by @vasilistotskas in #875 - Send the evlog SDK identity to Sentry by @evlogai[bot] in #866
- Send Datadog log batches gzip-compressed by @evlogai[bot] in #865
- Split Datadog log batches into requests of at most 1000 entries by @evlogai[bot] in #863
- Split Sentry log batches into envelopes of at most 100 logs by @evlogai[bot] in #864
Documentation 📚
- docs: fix the datadog gzip changeset, document datadog request splitting and cover sentry issues in e2e by @HugoRCD in #876
Tests 🧪
- test(core): cover a proto key merged into an existing event field by @HugoRCD in #888
- test(bench): record benchmark baseline and add report-only CI comparison by @evlogai[bot] in #873
Refactoring 🛠
Performance Improvements ⚡️
Changelog: https://github.com/evloghq/evlog/blob/evlog@2.33.0/packages/evlog/CHANGELOG.md#2330
Full Changelog: https://github.com/evloghq/evlog/compare/evlog@2.32.0...evlog@2.33.0
@evlog/telemetry@0.3.5
What's Changed
Bug Fixes 🐞
Changelog: https://github.com/evloghq/evlog/blob/@evlog/telemetry@0.3.5/packages/telemetry/CHANGELOG.md#035
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/telemetry@0.3.4...@evlog/telemetry@0.3.5
@evlog/signals@0.2.1
What's Changed
Bug Fixes 🐞
- The published packages no longer ship
.mapfiles by @evlogai[bot] in #895 - fix: serialize RegExp redact patterns across the nuxt and nitro config bridges by @evlogai[bot] in #794
Dependency Updates 📦
Changelog: https://github.com/evloghq/evlog/blob/@evlog/signals@0.2.1/packages/signals/CHANGELOG.md#021
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/signals@0.2.0...@evlog/signals@0.2.1
@evlog/cli@0.11.0
What's Changed
Features 🚀
evlog initoffers Grafana Loki and ClickHouse as production destinations by @evlogai[bot] in #882evlog initoffers Sazabi as a production destination by @evlogai[bot] in #881
Bug Fixes 🐞
- The published packages no longer ship
.mapfiles by @evlogai[bot] in #895 evlog doctorandevlog initnow recognise an app that reaches evlog only through a wrapper package, such as a shared@acme/loggerthat callscreateEvlog, the same wayevlog mapalready does by @evlogai[bot] in #887evlog maprecognises evlog helpers imported from a package that wraps evlog, such as a shared@acme/loggerthat callscreateEvlogin a workspace by @HugoRCD in #869
Changelog: https://github.com/evloghq/evlog/blob/@evlog/cli@0.11.0/packages/cli/CHANGELOG.md#0110
Full Changelog: https://github.com/evloghq/evlog/compare/@evlog/cli@0.10.0...@evlog/cli@0.11.0
