Skip to main content
Superseded by 0147: the logger drivers are console, OTLP and Better Stack. CloudWatch and Sentry reach logs through OTLP or a collector.

Context

The Figentra OS logger is ported (0084). It already reports to CloudWatch. Services built on Stackra run on Encore, and observability uses Sentry and Better Stack (0073). On-prem and air-gapped deployments (0076) cannot rely on any one of these being present.

Decision

  1. @stackra/logger is a driver package: application code logs through the logger, and reporters are drivers chosen by configuration.
  2. The CloudWatch reporter is kept.
  3. Three reporters are added: Encore log (encore.dev/log, passed in by the service and never imported by the package), Sentry, and Better Stack.
  4. No personal data in any log line (0020 rule 3, 0071).

Consequences

  • One logging call site no matter where the code is deployed. Reporters are swapped by configuration.
  • Four vendor reporters to maintain and keep current through the catalogs.
  • Which reporter an air-gapped deployment uses, when no hosted reporter is reachable, is TODO and settled when the logger is ported.
  • The Encore reporter follows the duck-typed driver rule of 0078 decision 8.

Enforcement

packages/tooling/oxlint/src/boundaries.jsonc bans encore.dev in packages. Planned: a reporter conformance suite in the package, and a redaction test that rejects known PII fields. Nothing else checks this today.

Supersedes and sources

Supersedes: none. Fills the logging part of 0020 decision 6 for the logger package only. Sources: owner decision in chat, 2026-10-19 (Round 8 F6).