Skip to main content
Changes to @wolfstar/plugin-logger. For the weekly summary across all packages, see the changelog overview.

0.5.0 (2026-10-20)

New features

  • Own stars.config key — The module sets meta.configKey, so you can write its options under the top-level logger key of stars.config instead of the [specifier, options] tuple of modules. The tuple still works and is merged over the key. The key is typed in defineConfig once the module is imported in stars.config.ts. (#259)

Updates

  • New optional peer — @wolfstar/schema (^0.9.0) is a new optional peer that carries the StarsConfig type the keys extend.

Migration

  • @wolfstar/kit peer raised — The @wolfstar/kit peer range moves from ^0.1.0 to ^0.2.0, the first version that reads configKey. If your project uses @wolfstar/kit 0.1, update it.

0.4.0 (2026-10-09)

New features

  • Shared payload fields — Every LogPayload now carries a derived message, error, and context. Use createLogPayload to build payloads for custom transports and tests. (#232)
  • evlog module option — The Stars module gains an evlog option that runs initLogger and adds the transport. Pass evlog: true, or write the options inline (env, sampling, redact, pipeline, …) with drain pointing to a file that default-exports defineEvlogDrain(...).
  • @wolfstar/plugin-logger/evlog/plugin entry — Its default export is the plugin factory, taking the drain directly outside Stars.
  • Interaction wide events — The evlog plugin emits one evlog wide event per interaction (command, component, modal, and optionally autocomplete) with its outcome, error, duration, and who/where. Control it with the interactions option, and add fields from a command with useInteractionLogger().
  • Sentry breadcrumbs and Logs — SentryTransport keeps the message and context next to an exception, can record breadcrumbs (breadcrumbLevel), and can send Sentry Logs (logLevel).

Updates

  • EvlogTransport — Writes structured events through evlog’s pipeline instead of flattened strings, maps all six levels, and flushes the drain on close.
  • SentryTransport — Flushes the client on close.
  • WinstonTransport — Serialises errors and flags fatal entries.

Bug fixes

  • WinstonTransport close — Closing the transport twice no longer hangs.

Migration

  • @sentry/node peer dropped — The plugin no longer declares @sentry/node as a peer dependency.
  • evlog peer raised — Upgrade evlog to ^2.30.0.
  • Custom transports — LogPayload now includes message, error, and context. Update custom transports and test fixtures that build payloads by hand, or use createLogPayload.

0.3.0 (2026-10-05)

New features

  • /module and /plugin entrypoints — Adds @wolfstar/plugin-logger/module and @wolfstar/plugin-logger/plugin. List the module in modules in stars.config, or pass the definePlugin factory to plugins. Both need @wolfstar/http-framework 6.1 (and @wolfstar/kit for the module). ./register is unchanged and still supports framework v3, v5, and v6. (#187)

0.2.2 (2026-10-04)

Updates

Bug fixes

  • Peer range — Accept @wolfstar/http-framework v6 in the peer range (|| ^6.0.0). (#176)

0.2.1

Bug fixes

  • Peer dependency — Accept @wolfstar/http-framework v5 as a peer dependency (^3.4.0 || ^5.0.0), so v5 projects no longer install the plugin with an unmet peer. (#125)

0.2.0 (2026-09-24)

New features

  • New package — Add @wolfstar/plugin-logger, a pluggable logger for @wolfstar/http-framework that replaces the deprecated @wolfstar/logger. It installs a Logger as container.logger through the preGenericsInitialization hook, implementing the framework’s ILogger contract so migrating is a drop-in change. Instead of being hardcoded to console, it fans every entry out to a list of transports, each able to filter by its own level on top of the logger’s. The package ships ConsoleTransport (the zero-dependency default) and SentryTransport in its core entrypoint, plus ConsolaTransport, EvlogTransport, and WinstonTransport behind the ./consola, ./evlog, and ./winston subpaths. Every backend is an optional peer dependency whose instance is injected through the transport constructor, so the core stays free of runtime dependencies and consumers only install what they actually use. (#70)