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