@danieljvdm/dev-kit 1.0.2 → 2.0.0
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/README.md +6 -6
- package/package.json +1 -1
- package/skill-sources.jsonc +2 -33
- package/skill-sources.lock.json +15 -117
- package/skills/animate/LICENSE +21 -0
- package/skills/animate/NOTICE +10 -0
- package/skills/animate/SKILL.md +34 -0
- package/skills/animate/references/gestures.md +27 -0
- package/skills/animate/references/glossary.md +136 -0
- package/skills/animate/references/implementation.md +22 -0
- package/skills/animate/references/opportunities.md +18 -0
- package/skills/animate/references/principles.md +48 -0
- package/skills/animate/references/review.md +19 -0
- package/skills/cloudflare-workers/LICENSE +202 -0
- package/skills/cloudflare-workers/NOTICE +9 -0
- package/skills/cloudflare-workers/SKILL.md +26 -0
- package/skills/cloudflare-workers/references/durable-objects.md +68 -0
- package/skills/cloudflare-workers/references/sandbox.md +48 -0
- package/skills/cloudflare-workers/references/workers.md +63 -0
- package/skills/cloudflare-workers/references/wrangler.md +56 -0
- package/skills/design-ui/LICENSE +21 -0
- package/skills/design-ui/NOTICE +8 -0
- package/skills/design-ui/SKILL.md +29 -0
- package/skills/design-ui/references/appearance.md +22 -0
- package/skills/design-ui/references/components.md +33 -0
- package/skills/design-ui/references/exploration.md +50 -0
- package/skills/design-ui/references/libraries.md +39 -0
- package/skills/design-ui/references/themes.md +23 -0
- package/skills/dev-kit/SKILL.md +19 -38
- package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
- package/skills/dev-kit/references/skills.md +2 -2
- package/skills/effect-development/SKILL.md +27 -0
- package/skills/effect-development/agents/openai.yaml +4 -0
- package/skills/effect-development/references/api/index.md +32 -0
- package/skills/effect-development/references/api/schema-codecs.md +15 -0
- package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
- package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
- package/skills/effect-development/references/atom/index.md +40 -0
- package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
- package/skills/effect-development/references/cli/index.md +39 -0
- package/skills/effect-development/references/setup.md +15 -0
- package/skills/open-pull-request/SKILL.md +10 -70
- package/skills/open-pull-request/references/evidence.md +22 -0
- package/skills/open-pull-request/references/explanation.md +21 -0
- package/skills/open-pull-request/references/publication.md +21 -0
- package/skills/sentry/LICENSE +202 -0
- package/skills/sentry/LICENSE-UPSTREAM +21 -0
- package/skills/sentry/NOTICE +14 -0
- package/skills/sentry/SKILL.md +33 -0
- package/skills/sentry/references/alert-payloads.md +105 -0
- package/skills/sentry/references/alerts.md +17 -0
- package/skills/sentry/references/artifacts.md +25 -0
- package/skills/sentry/references/auth-token.md +65 -0
- package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
- package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
- package/skills/sentry/references/concepts/crons.md +50 -0
- package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
- package/skills/sentry/references/concepts/errors.md +40 -0
- package/skills/sentry/references/concepts/logging.md +85 -0
- package/skills/sentry/references/concepts/metrics.md +49 -0
- package/skills/sentry/references/concepts/monitors.md +78 -0
- package/skills/sentry/references/concepts/profiling.md +38 -0
- package/skills/sentry/references/concepts/reduce-volume.md +49 -0
- package/skills/sentry/references/concepts/releases.md +43 -0
- package/skills/sentry/references/concepts/session-replay.md +35 -0
- package/skills/sentry/references/concepts/tracing.md +54 -0
- package/skills/sentry/references/concepts/user-feedback.md +36 -0
- package/skills/sentry/references/debug-artifacts/android.md +68 -0
- package/skills/sentry/references/debug-artifacts/apple.md +96 -0
- package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
- package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
- package/skills/sentry/references/debug-artifacts/index.md +75 -0
- package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
- package/skills/sentry/references/debug-artifacts/matching.md +73 -0
- package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
- package/skills/sentry/references/first-error-setup.md +25 -0
- package/skills/sentry/references/instrumentation.md +30 -0
- package/skills/sentry/references/issues.md +32 -0
- package/skills/sentry/references/new-project.md +17 -0
- package/skills/sentry/references/otel-exporter.md +30 -0
- package/skills/sentry/references/release-workflow.md +31 -0
- package/skills/sentry/references/releases/ci-pipeline.md +214 -0
- package/skills/sentry/references/releases/index.md +93 -0
- package/skills/sentry/references/releases/suspect-commits.md +155 -0
- package/skills/sentry/references/releases/tagging.md +131 -0
- package/skills/sentry/references/releases/troubleshooting.md +67 -0
- package/skills/sentry/references/sdks/android/crons.md +305 -0
- package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
- package/skills/sentry/references/sdks/android/index.md +748 -0
- package/skills/sentry/references/sdks/android/integrations.md +48 -0
- package/skills/sentry/references/sdks/android/logging.md +374 -0
- package/skills/sentry/references/sdks/android/metrics.md +288 -0
- package/skills/sentry/references/sdks/android/profiling.md +397 -0
- package/skills/sentry/references/sdks/android/session-replay.md +406 -0
- package/skills/sentry/references/sdks/android/tracing.md +861 -0
- package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
- package/skills/sentry/references/sdks/browser/index.md +714 -0
- package/skills/sentry/references/sdks/browser/logging.md +315 -0
- package/skills/sentry/references/sdks/browser/profiling.md +236 -0
- package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
- package/skills/sentry/references/sdks/browser/tracing.md +561 -0
- package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
- package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
- package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
- package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
- package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
- package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
- package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
- package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
- package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
- package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
- package/skills/sentry/references/sdks/cocoa/index.md +497 -0
- package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
- package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
- package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
- package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
- package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
- package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
- package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
- package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
- package/skills/sentry/references/sdks/dotnet/index.md +614 -0
- package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
- package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
- package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
- package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
- package/skills/sentry/references/sdks/elixir/crons.md +371 -0
- package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
- package/skills/sentry/references/sdks/elixir/index.md +383 -0
- package/skills/sentry/references/sdks/elixir/logging.md +239 -0
- package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
- package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
- package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
- package/skills/sentry/references/sdks/flutter/index.md +728 -0
- package/skills/sentry/references/sdks/flutter/logging.md +387 -0
- package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
- package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
- package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
- package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
- package/skills/sentry/references/sdks/go/crons.md +270 -0
- package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
- package/skills/sentry/references/sdks/go/index.md +324 -0
- package/skills/sentry/references/sdks/go/logging.md +354 -0
- package/skills/sentry/references/sdks/go/metrics.md +273 -0
- package/skills/sentry/references/sdks/go/profiling.md +46 -0
- package/skills/sentry/references/sdks/go/tracing.md +366 -0
- package/skills/sentry/references/sdks/index.md +41 -0
- package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
- package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
- package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
- package/skills/sentry/references/sdks/nestjs/index.md +699 -0
- package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
- package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
- package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
- package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
- package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
- package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
- package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
- package/skills/sentry/references/sdks/nextjs/index.md +491 -0
- package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
- package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
- package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
- package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
- package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
- package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
- package/skills/sentry/references/sdks/node/crons.md +432 -0
- package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
- package/skills/sentry/references/sdks/node/index.md +942 -0
- package/skills/sentry/references/sdks/node/logging.md +380 -0
- package/skills/sentry/references/sdks/node/metrics.md +278 -0
- package/skills/sentry/references/sdks/node/profiling.md +373 -0
- package/skills/sentry/references/sdks/node/tracing.md +878 -0
- package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
- package/skills/sentry/references/sdks/php/crons.md +265 -0
- package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
- package/skills/sentry/references/sdks/php/index.md +362 -0
- package/skills/sentry/references/sdks/php/laravel.md +542 -0
- package/skills/sentry/references/sdks/php/logging.md +242 -0
- package/skills/sentry/references/sdks/php/metrics.md +193 -0
- package/skills/sentry/references/sdks/php/profiling.md +115 -0
- package/skills/sentry/references/sdks/php/symfony.md +552 -0
- package/skills/sentry/references/sdks/php/tracing.md +516 -0
- package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
- package/skills/sentry/references/sdks/python/crons.md +218 -0
- package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
- package/skills/sentry/references/sdks/python/index.md +361 -0
- package/skills/sentry/references/sdks/python/logging.md +234 -0
- package/skills/sentry/references/sdks/python/metrics.md +154 -0
- package/skills/sentry/references/sdks/python/profiling.md +120 -0
- package/skills/sentry/references/sdks/python/tracing.md +364 -0
- package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
- package/skills/sentry/references/sdks/react/index.md +492 -0
- package/skills/sentry/references/sdks/react/logging.md +364 -0
- package/skills/sentry/references/sdks/react/profiling.md +322 -0
- package/skills/sentry/references/sdks/react/react-features.md +1272 -0
- package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
- package/skills/sentry/references/sdks/react/tracing.md +1415 -0
- package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
- package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
- package/skills/sentry/references/sdks/react-native/index.md +1030 -0
- package/skills/sentry/references/sdks/react-native/logging.md +444 -0
- package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
- package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
- package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
- package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
- package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
- package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
- package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
- package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
- package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
- package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
- package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
- package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
- package/skills/sentry/references/sdks/ruby/crons.md +184 -0
- package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
- package/skills/sentry/references/sdks/ruby/index.md +297 -0
- package/skills/sentry/references/sdks/ruby/logging.md +168 -0
- package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
- package/skills/sentry/references/sdks/ruby/migration.md +321 -0
- package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
- package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
- package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
- package/skills/sentry/references/sdks/svelte/index.md +467 -0
- package/skills/sentry/references/sdks/svelte/logging.md +344 -0
- package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
- package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
- package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
- package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
- package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
- package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
- package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
- package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
- package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
- package/skills/sentry/references/search-query-language.md +226 -0
- package/skills/sentry/references/semantics/angular.md +7 -0
- package/skills/sentry/references/semantics/app.md +28 -0
- package/skills/sentry/references/semantics/art.md +17 -0
- package/skills/sentry/references/semantics/aws.md +43 -0
- package/skills/sentry/references/semantics/browser.md +34 -0
- package/skills/sentry/references/semantics/cache.md +12 -0
- package/skills/sentry/references/semantics/client.md +8 -0
- package/skills/sentry/references/semantics/cloud.md +12 -0
- package/skills/sentry/references/semantics/cloudflare.md +23 -0
- package/skills/sentry/references/semantics/code.md +11 -0
- package/skills/sentry/references/semantics/culture.md +11 -0
- package/skills/sentry/references/semantics/db.md +21 -0
- package/skills/sentry/references/semantics/device.md +43 -0
- package/skills/sentry/references/semantics/error.md +7 -0
- package/skills/sentry/references/semantics/event.md +8 -0
- package/skills/sentry/references/semantics/exception.md +10 -0
- package/skills/sentry/references/semantics/faas.md +19 -0
- package/skills/sentry/references/semantics/file.md +8 -0
- package/skills/sentry/references/semantics/flag.md +7 -0
- package/skills/sentry/references/semantics/gcp.md +16 -0
- package/skills/sentry/references/semantics/gen_ai.md +53 -0
- package/skills/sentry/references/semantics/general.md +11 -0
- package/skills/sentry/references/semantics/graphql.md +9 -0
- package/skills/sentry/references/semantics/grpc.md +19 -0
- package/skills/sentry/references/semantics/http.md +34 -0
- package/skills/sentry/references/semantics/index.md +63 -0
- package/skills/sentry/references/semantics/jsonrpc.md +8 -0
- package/skills/sentry/references/semantics/jvm.md +12 -0
- package/skills/sentry/references/semantics/koa.md +7 -0
- package/skills/sentry/references/semantics/logger.md +7 -0
- package/skills/sentry/references/semantics/mcp.md +37 -0
- package/skills/sentry/references/semantics/mdc.md +7 -0
- package/skills/sentry/references/semantics/messaging.md +23 -0
- package/skills/sentry/references/semantics/middleware.md +7 -0
- package/skills/sentry/references/semantics/navigation.md +9 -0
- package/skills/sentry/references/semantics/nel.md +11 -0
- package/skills/sentry/references/semantics/network.md +17 -0
- package/skills/sentry/references/semantics/os.md +15 -0
- package/skills/sentry/references/semantics/otel.md +10 -0
- package/skills/sentry/references/semantics/params.md +7 -0
- package/skills/sentry/references/semantics/process.md +14 -0
- package/skills/sentry/references/semantics/react.md +7 -0
- package/skills/sentry/references/semantics/remix.md +7 -0
- package/skills/sentry/references/semantics/resource.md +7 -0
- package/skills/sentry/references/semantics/rpc.md +10 -0
- package/skills/sentry/references/semantics/score.md +10 -0
- package/skills/sentry/references/semantics/sentry.md +69 -0
- package/skills/sentry/references/semantics/server.md +8 -0
- package/skills/sentry/references/semantics/service.md +8 -0
- package/skills/sentry/references/semantics/session.md +7 -0
- package/skills/sentry/references/semantics/state.md +7 -0
- package/skills/sentry/references/semantics/thread.md +8 -0
- package/skills/sentry/references/semantics/timber.md +7 -0
- package/skills/sentry/references/semantics/trpc.md +8 -0
- package/skills/sentry/references/semantics/ui.md +18 -0
- package/skills/sentry/references/semantics/url.md +15 -0
- package/skills/sentry/references/semantics/user.md +17 -0
- package/skills/sentry/references/semantics/user_agent.md +7 -0
- package/skills/sentry/references/semantics/vercel.md +42 -0
- package/skills/sentry/references/setup-verification.md +39 -0
- package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
- package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
- package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
- package/skills/sentry/references/snapshots/index.md +19 -0
- package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
- package/skills/sentry/references/snapshots/snapshots.md +123 -0
- package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
- package/skills/testing/LICENSE +21 -0
- package/skills/testing/NOTICE +7 -0
- package/skills/testing/SKILL.md +13 -19
- package/skills/testing/agents/openai.yaml +1 -2
- package/skills/testing/references/selection.md +23 -0
- package/skills/testing/references/tdd.md +19 -0
- package/skills/testing/references/test-design.md +17 -0
- package/src/catalog.ts +1 -7
- package/skills/build-effect-apis/SKILL.md +0 -81
- package/skills/build-effect-apis/agents/openai.yaml +0 -4
- package/skills/build-effect-clis/SKILL.md +0 -92
- package/skills/build-effect-clis/agents/openai.yaml +0 -4
- package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
- package/skills/effect-atom-state/SKILL.md +0 -97
- package/skills/effect-atom-state/agents/openai.yaml +0 -4
- package/skills/effect-ts/SKILL.md +0 -35
- package/skills/effect-ts/agents/openai.yaml +0 -4
- /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
- /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
# Logging — Sentry Next.js SDK
|
|
2
|
+
|
|
3
|
+
> Minimum SDK: `@sentry/nextjs` ≥9.41.0+ for `Sentry.logger` API and `enableLogs`\
|
|
4
|
+
> `consoleLoggingIntegration()` multi-arg parsing: requires ≥10.13.0+\
|
|
5
|
+
> Scope-based attributes (`getGlobalScope`, `getIsolationScope`): requires ≥10.32.0+
|
|
6
|
+
|
|
7
|
+
> ⚠️ **Not available via CDN/loader snippet** — NPM install required.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Enabling Logs
|
|
12
|
+
|
|
13
|
+
`enableLogs` must be set in **all three** Next.js runtime config files:
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// instrumentation-client.ts → use NEXT_PUBLIC_SENTRY_DSN
|
|
17
|
+
// sentry.server.config.ts → use SENTRY_DSN
|
|
18
|
+
// sentry.edge.config.ts → use SENTRY_DSN
|
|
19
|
+
import * as Sentry from "@sentry/nextjs";
|
|
20
|
+
|
|
21
|
+
Sentry.init({
|
|
22
|
+
dsn: process.env.SENTRY_DSN, // use NEXT_PUBLIC_SENTRY_DSN in client config
|
|
23
|
+
enableLogs: true, // Required — logging is disabled by default
|
|
24
|
+
});
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Without `enableLogs: true`, all `Sentry.logger.*` calls are silently no-ops.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Logger API — Six Levels
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import * as Sentry from "@sentry/nextjs";
|
|
35
|
+
|
|
36
|
+
Sentry.logger.trace("Entering processOrder", { fn: "processOrder", orderId: "ord_1" });
|
|
37
|
+
Sentry.logger.debug("Cache lookup", { key: "user:123", hit: false });
|
|
38
|
+
Sentry.logger.info("Order created", { orderId: "order_456", total: 99.99 });
|
|
39
|
+
Sentry.logger.warn("Rate limit approaching", { current: 95, max: 100 });
|
|
40
|
+
Sentry.logger.error("Payment failed", { reason: "card_declined", userId: "u_1" });
|
|
41
|
+
Sentry.logger.fatal("Database unavailable", { host: "db-primary" });
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
| Level | Method | Typical Use |
|
|
45
|
+
| ------- | ----------------------- | -------------------------------------------------------------------------- |
|
|
46
|
+
| `trace` | `Sentry.logger.trace()` | Ultra-granular function entry/exit; high-volume — filter out in production |
|
|
47
|
+
| `debug` | `Sentry.logger.debug()` | Development diagnostics, cache hits/misses |
|
|
48
|
+
| `info` | `Sentry.logger.info()` | Normal business milestones, confirmations |
|
|
49
|
+
| `warn` | `Sentry.logger.warn()` | Degraded state, approaching limits, recoverable issues |
|
|
50
|
+
| `error` | `Sentry.logger.error()` | Failures requiring attention |
|
|
51
|
+
| `fatal` | `Sentry.logger.fatal()` | Critical failures, system unavailable |
|
|
52
|
+
|
|
53
|
+
**Attribute value types:** `string`, `number`, `boolean` only — `undefined`, arrays, and
|
|
54
|
+
objects are not accepted.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Parameterized Messages — `Sentry.logger.fmt`
|
|
59
|
+
|
|
60
|
+
The `fmt` tagged template literal binds each interpolated variable as a **structured,
|
|
61
|
+
searchable attribute** in Sentry:
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const userId = "user_123";
|
|
65
|
+
const productName = "Widget Pro";
|
|
66
|
+
const amount = 49.99;
|
|
67
|
+
|
|
68
|
+
Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName} for $${amount}`);
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
This produces:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
message.template: "User %s purchased %s for $%s"
|
|
75
|
+
message.parameter.0: "user_123"
|
|
76
|
+
message.parameter.1: "Widget Pro"
|
|
77
|
+
message.parameter.2: 49.99
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Each parameter is independently searchable in Sentry’s log explorer.
|
|
81
|
+
|
|
82
|
+
> ⚠️ `logger.fmt` must be used as a **tagged template literal** — not a function call.
|
|
83
|
+
> `Sentry.logger.fmt("text")` will not produce structured parameters.
|
|
84
|
+
|
|
85
|
+
### When to use `fmt` vs plain attributes
|
|
86
|
+
|
|
87
|
+
| Approach | Use when |
|
|
88
|
+
| --------------------------------------------------------------- | ------------------------------------------------------ |
|
|
89
|
+
| `Sentry.logger.info(msg, { key: val })` | Variables are logically distinct attributes with names |
|
|
90
|
+
| `Sentry.logger.info` with a `Sentry.logger.fmt` tagged template | Variables are part of a human-readable sentence |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Console Capture — `consoleLoggingIntegration`
|
|
95
|
+
|
|
96
|
+
Automatically forwards `console.*` calls to Sentry as structured logs:
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
Sentry.init({
|
|
100
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
101
|
+
enableLogs: true,
|
|
102
|
+
integrations: [
|
|
103
|
+
Sentry.consoleLoggingIntegration({
|
|
104
|
+
levels: ["log", "warn", "error"], // which console methods to forward
|
|
105
|
+
}),
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Multiple arguments are mapped to positional parameters (requires SDK ≥10.13.0):
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
console.log("User action recorded", userId, success)
|
|
114
|
+
→ message.parameter.0 = <userId value>
|
|
115
|
+
→ message.parameter.1 = <success value>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
| Console method | Sentry log level |
|
|
119
|
+
| -------------------------- | ---------------- |
|
|
120
|
+
| `console.log` | `info` |
|
|
121
|
+
| `console.info` | `info` |
|
|
122
|
+
| `console.warn` | `warn` |
|
|
123
|
+
| `console.error` | `error` |
|
|
124
|
+
| `console.debug` | `debug` |
|
|
125
|
+
| `console.assert` (failing) | `error` |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Log Filtering — `beforeSendLog`
|
|
130
|
+
|
|
131
|
+
Use `beforeSendLog` to drop, modify, or scrub logs before they are sent.
|
|
132
|
+
Return `null` to discard:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
Sentry.init({
|
|
136
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
137
|
+
enableLogs: true,
|
|
138
|
+
beforeSendLog: (log) => {
|
|
139
|
+
// Drop debug and trace logs in production
|
|
140
|
+
if (log.level === "debug" || log.level === "trace") {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Scrub sensitive attribute keys
|
|
145
|
+
if (log.attributes?.password) {
|
|
146
|
+
delete log.attributes.password;
|
|
147
|
+
}
|
|
148
|
+
if (log.attributes?.["credit_card"]) {
|
|
149
|
+
log.attributes["credit_card"] = "[REDACTED]";
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Drop noisy health-check logs by message content
|
|
153
|
+
if (log.message?.includes("/health")) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return log; // send the (possibly modified) log
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### The `log` object shape
|
|
163
|
+
|
|
164
|
+
| Field | Type | Description |
|
|
165
|
+
| ------------ | -------- | ------------------------------------------------------------------------ |
|
|
166
|
+
| `level` | `string` | `"trace"` \| `"debug"` \| `"info"` \| `"warn"` \| `"error"` \| `"fatal"` |
|
|
167
|
+
| `message` | `string` | The log message text |
|
|
168
|
+
| `timestamp` | `number` | Unix timestamp |
|
|
169
|
+
| `attributes` | `object` | Key/value pairs attached to this log |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Scope-Based Automatic Attributes (SDK ≥10.32.0)
|
|
174
|
+
|
|
175
|
+
Attributes set on scopes are automatically added to all logs emitted within that scope.
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
// Global scope — shared across the entire app lifetime
|
|
179
|
+
Sentry.getGlobalScope().setAttributes({
|
|
180
|
+
service: "checkout",
|
|
181
|
+
version: "2.1.0",
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Isolation scope — unique per request
|
|
185
|
+
// ⚠️ CRITICAL for Next.js server-side: use isolation scope (not global)
|
|
186
|
+
// to prevent attributes from one request leaking into another
|
|
187
|
+
Sentry.getIsolationScope().setAttributes({
|
|
188
|
+
org_id: user.orgId,
|
|
189
|
+
user_tier: user.tier,
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// Current scope — wraps a single operation
|
|
193
|
+
Sentry.withScope((scope) => {
|
|
194
|
+
scope.setAttribute("request_id", req.id);
|
|
195
|
+
Sentry.logger.info("Processing order"); // gets request_id attribute
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
> ⚠️ **Next.js server-side isolation:** Always use `getIsolationScope()` for per-request
|
|
200
|
+
> data on the server. The isolation scope is unique per request, preventing attributes
|
|
201
|
+
> from one user’s request from bleeding into another’s concurrent request.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Third-Party Logger Integrations
|
|
206
|
+
|
|
207
|
+
### Pino (SDK ≥10.18.0)
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
// sentry.server.config.ts — Pino is a Node.js integration (server-side only)
|
|
211
|
+
Sentry.init({
|
|
212
|
+
dsn: process.env.SENTRY_DSN,
|
|
213
|
+
enableLogs: true,
|
|
214
|
+
integrations: [Sentry.pinoIntegration()],
|
|
215
|
+
});
|
|
216
|
+
// No changes needed to your pino logger — it auto-captures logs
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Consola (SDK ≥10.12.0)
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
import { consola } from "consola";
|
|
223
|
+
|
|
224
|
+
const sentryReporter = Sentry.createConsolaReporter({
|
|
225
|
+
levels: ["error", "warn"], // optional: only forward these levels
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
consola.addReporter(sentryReporter);
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Winston (SDK ≥9.13.0)
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
import winston from "winston";
|
|
235
|
+
import Transport from "winston-transport";
|
|
236
|
+
|
|
237
|
+
const SentryTransport = Sentry.createSentryWinstonTransport(Transport, {
|
|
238
|
+
levels: ["error", "warn"],
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
const logger = winston.createLogger({
|
|
242
|
+
transports: [new SentryTransport()],
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Auto-Generated Attributes
|
|
249
|
+
|
|
250
|
+
These are added by the SDK to every log without any developer configuration:
|
|
251
|
+
|
|
252
|
+
| Attribute | Notes |
|
|
253
|
+
| ------------------------------------ | ----------------------------------------------------------------- |
|
|
254
|
+
| `sentry.environment` | Always present |
|
|
255
|
+
| `sentry.release` | Always present |
|
|
256
|
+
| `sentry.sdk.name` | e.g., `"sentry.javascript.nextjs"` |
|
|
257
|
+
| `sentry.sdk.version` | Always present |
|
|
258
|
+
| `browser.name`, `browser.version` | Client-side only |
|
|
259
|
+
| `user.id`, `user.name`, `user.email` | When `Sentry.setUser()` is called (`userInfo` defaults to `true`) |
|
|
260
|
+
| `sentry.trace.parent_span_id` | When inside an active span (enables log ↔ trace correlation) |
|
|
261
|
+
| `sentry.replay_id` | Client-side with Replay enabled |
|
|
262
|
+
| `server.address` | Server-side only |
|
|
263
|
+
| `message.template` | When using `logger.fmt` |
|
|
264
|
+
| `message.parameter.N` | When using `logger.fmt` or `consoleLoggingIntegration` |
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Next.js-Specific: Three-Runtime Configuration
|
|
269
|
+
|
|
270
|
+
For consistency across all runtimes, enable logging in all three config files:
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
// instrumentation-client.ts
|
|
274
|
+
import * as Sentry from "@sentry/nextjs";
|
|
275
|
+
Sentry.init({
|
|
276
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
277
|
+
enableLogs: true,
|
|
278
|
+
integrations: [Sentry.consoleLoggingIntegration({ levels: ["warn", "error"] })],
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
// sentry.server.config.ts
|
|
282
|
+
import * as Sentry from "@sentry/nextjs";
|
|
283
|
+
Sentry.init({
|
|
284
|
+
dsn: process.env.SENTRY_DSN,
|
|
285
|
+
enableLogs: true,
|
|
286
|
+
integrations: [Sentry.pinoIntegration()], // or consoleLoggingIntegration
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
// sentry.edge.config.ts
|
|
290
|
+
import * as Sentry from "@sentry/nextjs";
|
|
291
|
+
Sentry.init({
|
|
292
|
+
dsn: process.env.SENTRY_DSN,
|
|
293
|
+
enableLogs: true,
|
|
294
|
+
});
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Server Action Logging Example
|
|
298
|
+
|
|
299
|
+
```typescript
|
|
300
|
+
// app/actions/order.ts
|
|
301
|
+
"use server";
|
|
302
|
+
import * as Sentry from "@sentry/nextjs";
|
|
303
|
+
|
|
304
|
+
export async function createOrder(formData: FormData) {
|
|
305
|
+
// Use isolation scope for per-request context on the server
|
|
306
|
+
Sentry.getIsolationScope().setAttributes({
|
|
307
|
+
action: "createOrder",
|
|
308
|
+
userId: formData.get("userId") as string,
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
Sentry.logger.info("Order creation started", {
|
|
312
|
+
productId: formData.get("productId") as string,
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
try {
|
|
316
|
+
const order = await db.orders.create(/* ... */);
|
|
317
|
+
Sentry.logger.info("Order created successfully", { orderId: order.id });
|
|
318
|
+
return order;
|
|
319
|
+
} catch (err) {
|
|
320
|
+
Sentry.logger.error("Order creation failed", {
|
|
321
|
+
reason: (err as Error).message,
|
|
322
|
+
});
|
|
323
|
+
throw err;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Best Practice: Wide Events
|
|
331
|
+
|
|
332
|
+
Prefer **one comprehensive log with all context** over many fragmented logs:
|
|
333
|
+
|
|
334
|
+
```typescript
|
|
335
|
+
// ✅ Preferred — one wide log with full context
|
|
336
|
+
Sentry.logger.info("Checkout completed", {
|
|
337
|
+
orderId: order.id,
|
|
338
|
+
userId: user.id,
|
|
339
|
+
cartValue: cart.total,
|
|
340
|
+
itemCount: cart.items.length,
|
|
341
|
+
paymentMethod: "stripe",
|
|
342
|
+
userTier: user.tier,
|
|
343
|
+
durationMs: Date.now() - startTime,
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
// ❌ Avoid — fragmented logs that are hard to correlate
|
|
347
|
+
Sentry.logger.info("Cart validated");
|
|
348
|
+
Sentry.logger.info("Payment processed");
|
|
349
|
+
Sentry.logger.info("Checkout done");
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## SDK Version Matrix
|
|
355
|
+
|
|
356
|
+
| Feature | Min SDK Version |
|
|
357
|
+
| ------------------------------------- | --------------- |
|
|
358
|
+
| `enableLogs` / `Sentry.logger.*` | **9.41.0** |
|
|
359
|
+
| Winston transport | 9.13.0 |
|
|
360
|
+
| Consola reporter | 10.12.0 |
|
|
361
|
+
| Console integration multi-arg parsing | 10.13.0 |
|
|
362
|
+
| Pino integration | 10.18.0 |
|
|
363
|
+
| Scope attributes (`setAttributes`) | **10.32.0** |
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Troubleshooting
|
|
368
|
+
|
|
369
|
+
| Issue | Solution |
|
|
370
|
+
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
371
|
+
| Logs not appearing in Sentry | Verify `enableLogs: true` in `Sentry.init()`; check all three config files (client, server, edge) |
|
|
372
|
+
| `logger.fmt` not creating `message.parameter.*` | Use it as a tagged template literal — not as the function call `Sentry.logger.fmt("text", var)` |
|
|
373
|
+
| Logs not linked to traces | Ensure `tracesSampleRate` > 0 and the log is emitted inside an active span |
|
|
374
|
+
| `consoleLoggingIntegration` not available | Upgrade to ≥10.13.0 |
|
|
375
|
+
| Scope attributes not appearing | Upgrade to ≥10.32.0; use `getIsolationScope()` (not `getGlobalScope()`) for server request data |
|
|
376
|
+
| Cross-request attribute leakage on server | Replace `getGlobalScope()` with `getIsolationScope()` for per-request data |
|
|
377
|
+
| Too many logs / high volume | Use `beforeSendLog` to drop `trace` and `debug` levels in production |
|
|
378
|
+
| Log attributes contain `undefined` | Only `string`, `number`, `boolean` are accepted — filter out undefined values |
|
|
379
|
+
| `beforeSendLog` not firing | Confirm `enableLogs: true` is set — without it, no logs are processed |
|
|
380
|
+
| Sensitive data appearing in logs | Add filtering in `beforeSendLog`; better yet, avoid logging sensitive data at the call site |
|
|
381
|
+
| Edge runtime logs missing | Add `enableLogs: true` to `sentry.edge.config.ts` |
|