@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,444 @@
|
|
|
1
|
+
# Logging — Sentry React Native SDK
|
|
2
|
+
|
|
3
|
+
> **Minimum SDK:** `@sentry/react-native` ≥7.0.0 for `Sentry.logger` API\
|
|
4
|
+
> **Scope-based attribute setters** (`getGlobalScope`, `withScope`): requires ≥7.8.0\
|
|
5
|
+
> **`consoleLoggingIntegration()`**: requires ≥7.0.0
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Enabling Logs
|
|
10
|
+
|
|
11
|
+
`enableLogs` is **off by default** — opt in explicitly:
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import * as Sentry from "@sentry/react-native";
|
|
15
|
+
|
|
16
|
+
Sentry.init({
|
|
17
|
+
dsn: "YOUR_DSN",
|
|
18
|
+
enableLogs: true,
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Place this in your app entry point — `index.js`, `App.tsx`, or `app/_layout.tsx` (Expo
|
|
23
|
+
Router), depending on your project structure.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Logger API — Six Levels
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import * as Sentry from "@sentry/react-native";
|
|
31
|
+
|
|
32
|
+
// Fine-grained debugging — high volume, filter in production
|
|
33
|
+
Sentry.logger.trace("Starting authentication flow", { provider: "oauth" });
|
|
34
|
+
|
|
35
|
+
// Development diagnostics
|
|
36
|
+
Sentry.logger.debug("Cache lookup", { key: "user:123", hit: false });
|
|
37
|
+
|
|
38
|
+
// Normal operations and business milestones
|
|
39
|
+
Sentry.logger.info("Order created", { orderId: "order_456", total: 99.99 });
|
|
40
|
+
|
|
41
|
+
// Degraded state, approaching limits
|
|
42
|
+
Sentry.logger.warn("Rate limit approaching", {
|
|
43
|
+
endpoint: "/api/results/",
|
|
44
|
+
current: 95,
|
|
45
|
+
max: 100,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Failures requiring attention
|
|
49
|
+
Sentry.logger.error("Payment failed", {
|
|
50
|
+
reason: "card_declined",
|
|
51
|
+
userId: "u_1",
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Critical failures — app is down
|
|
55
|
+
Sentry.logger.fatal("Database unavailable", { host: "db-primary" });
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Level Selection Guide
|
|
59
|
+
|
|
60
|
+
| Level | When to Use |
|
|
61
|
+
| ------- | ---------------------------------------------------------------- |
|
|
62
|
+
| `trace` | Step-by-step internals, loop iterations, low-level flow tracking |
|
|
63
|
+
| `debug` | Diagnostic information useful during development |
|
|
64
|
+
| `info` | Business events, user actions, meaningful state transitions |
|
|
65
|
+
| `warn` | Recoverable errors, degraded performance, approaching limits |
|
|
66
|
+
| `error` | Failures that need investigation but don’t crash the app |
|
|
67
|
+
| `fatal` | Unrecoverable failures — app or critical subsystem is down |
|
|
68
|
+
|
|
69
|
+
**Attribute value types:** `string`, `number`, and `boolean` only.
|
|
70
|
+
Other types will be dropped or coerced.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Parameterized Messages with `logger.fmt`
|
|
75
|
+
|
|
76
|
+
Use `Sentry.logger.fmt` as a tagged template literal to make message variables
|
|
77
|
+
**individually searchable** in Sentry.
|
|
78
|
+
Each interpolated value becomes a `message.parameter.N` attribute:
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
const userId = "user_123";
|
|
82
|
+
const productName = "Widget Pro";
|
|
83
|
+
const amount = 49.99;
|
|
84
|
+
|
|
85
|
+
Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName} for $${amount}`);
|
|
86
|
+
// → message.template: "User %s purchased %s for $%s"
|
|
87
|
+
// → message.parameter.0: "user_123"
|
|
88
|
+
// → message.parameter.1: "Widget Pro"
|
|
89
|
+
// → message.parameter.2: 49.99
|
|
90
|
+
|
|
91
|
+
Sentry.logger.error(Sentry.logger.fmt`Failed to load screen ${screenName}: ${error.message}`);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
You can now filter and search for logs by individual parameter values in the Sentry Logs
|
|
95
|
+
UI — not just by the full message string.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Structured Attributes
|
|
100
|
+
|
|
101
|
+
Pass attributes as the second argument.
|
|
102
|
+
They become **queryable columns** in Sentry Logs:
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
Sentry.logger.info("Checkout completed", {
|
|
106
|
+
orderId: order.id,
|
|
107
|
+
userId: user.id,
|
|
108
|
+
cartValue: cart.total,
|
|
109
|
+
itemCount: cart.items.length,
|
|
110
|
+
paymentMethod: "stripe",
|
|
111
|
+
durationMs: Date.now() - startTime,
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
Sentry.logger.error("Navigation failed", {
|
|
115
|
+
fromScreen: "Home",
|
|
116
|
+
toScreen: "Profile",
|
|
117
|
+
errorCode: err.code,
|
|
118
|
+
retryable: true,
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Scope-Based Automatic Attributes (SDK ≥7.8.0)
|
|
125
|
+
|
|
126
|
+
Set attributes once on a scope and they are **automatically attached to all logs**
|
|
127
|
+
emitted within that scope.
|
|
128
|
+
|
|
129
|
+
### Global scope — entire app lifetime
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// In your Sentry.init block or app startup
|
|
133
|
+
Sentry.getGlobalScope().setAttributes({
|
|
134
|
+
app_version: "2.1.0",
|
|
135
|
+
build_number: "42",
|
|
136
|
+
platform: Platform.OS, // "ios" or "android"
|
|
137
|
+
environment: __DEV__ ? "development" : "production",
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Scoped attributes — single operation or code block
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
Sentry.withScope(async (scope) => {
|
|
145
|
+
scope.setAttribute("order_id", "ord_789");
|
|
146
|
+
scope.setAttribute("payment_method", "stripe");
|
|
147
|
+
|
|
148
|
+
Sentry.logger.info("Validating cart", { cartId: cart.id });
|
|
149
|
+
// order_id and payment_method included in this log
|
|
150
|
+
await processPayment();
|
|
151
|
+
Sentry.logger.info("Payment complete");
|
|
152
|
+
// order_id and payment_method included here too
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Console Logging Integration
|
|
159
|
+
|
|
160
|
+
Automatically forwards `console.log`, `console.warn`, and `console.error` calls to
|
|
161
|
+
Sentry as structured logs.
|
|
162
|
+
Requires SDK ≥7.0.0.
|
|
163
|
+
|
|
164
|
+
**SDK ≥8.14.0:** Console capture is enabled by default when `enableLogs: true`. Set
|
|
165
|
+
`enableAutoConsoleLogs: false` to disable automatic console capture and use only manual
|
|
166
|
+
`Sentry.logger.*` calls.
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
Sentry.init({
|
|
170
|
+
dsn: "YOUR_DSN",
|
|
171
|
+
enableLogs: true,
|
|
172
|
+
// SDK ≥8.14.0: console capture is automatic. To disable:
|
|
173
|
+
// enableAutoConsoleLogs: false,
|
|
174
|
+
|
|
175
|
+
// SDK <8.14.0: add consoleLoggingIntegration manually:
|
|
176
|
+
integrations: [
|
|
177
|
+
Sentry.consoleLoggingIntegration({
|
|
178
|
+
levels: ["log", "warn", "error"], // default — adjust as needed
|
|
179
|
+
}),
|
|
180
|
+
],
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// These are now automatically forwarded to Sentry:
|
|
184
|
+
console.log("User action:", userId, success);
|
|
185
|
+
// → message.parameter.0: userId
|
|
186
|
+
// → message.parameter.1: success
|
|
187
|
+
|
|
188
|
+
console.warn("Memory pressure detected", memoryUsage);
|
|
189
|
+
console.error("Fetch failed:", error.message);
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
> **React Native note:** All `console.*` calls in React Native go through the JS bridge.
|
|
193
|
+
> In development, the console capture will forward them all — use `beforeSendLog` to
|
|
194
|
+
> filter out noise before it reaches Sentry.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Filtering with `beforeSendLog`
|
|
199
|
+
|
|
200
|
+
Filter or mutate every log before it is transmitted.
|
|
201
|
+
Return `null` to drop the log entirely:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
Sentry.init({
|
|
205
|
+
dsn: "YOUR_DSN",
|
|
206
|
+
enableLogs: true,
|
|
207
|
+
beforeSendLog: (log) => {
|
|
208
|
+
// Drop low-level logs in production to reduce volume
|
|
209
|
+
if (!__DEV__ && (log.level === "trace" || log.level === "debug")) {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Scrub sensitive attribute values
|
|
214
|
+
if (log.attributes?.password) {
|
|
215
|
+
delete log.attributes.password;
|
|
216
|
+
}
|
|
217
|
+
if (log.attributes?.credit_card) {
|
|
218
|
+
log.attributes.credit_card = "[REDACTED]";
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Drop health check noise from console capture
|
|
222
|
+
if (log.message?.includes("heartbeat")) return null;
|
|
223
|
+
|
|
224
|
+
return log;
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
The `log` object has the following shape:
|
|
230
|
+
|
|
231
|
+
| Field | Type | Description |
|
|
232
|
+
| ------------ | -------- | -------------------------------------------------------------- |
|
|
233
|
+
| `level` | `string` | `"trace"`, `"debug"`, `"info"`, `"warn"`, `"error"`, `"fatal"` |
|
|
234
|
+
| `message` | `string` | The log message (template-expanded) |
|
|
235
|
+
| `timestamp` | `number` | Unix timestamp |
|
|
236
|
+
| `attributes` | `object` | All structured attributes |
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Auto-Generated Attributes
|
|
241
|
+
|
|
242
|
+
The SDK automatically attaches these attributes to every log:
|
|
243
|
+
|
|
244
|
+
| Attribute | Source |
|
|
245
|
+
| ------------------------------------ | -------------------------------------------- |
|
|
246
|
+
| `sentry.environment` | `Sentry.init({ environment })` |
|
|
247
|
+
| `sentry.release` | `Sentry.init({ release })` |
|
|
248
|
+
| `sentry.sdk.name` | SDK internals |
|
|
249
|
+
| `sentry.sdk.version` | SDK internals |
|
|
250
|
+
| `user.id`, `user.name`, `user.email` | `Sentry.setUser()` when set |
|
|
251
|
+
| `sentry.message.template` | `logger.fmt` usage |
|
|
252
|
+
| `sentry.message.parameter.X` | `logger.fmt` interpolated values |
|
|
253
|
+
| `origin` | Identifies which integration emitted the log |
|
|
254
|
+
|
|
255
|
+
### React Native vs Web — Attribute Differences
|
|
256
|
+
|
|
257
|
+
React Native **does not** emit the following attributes that web SDKs include:
|
|
258
|
+
|
|
259
|
+
- `browser.name` / `browser.version` — not applicable on native
|
|
260
|
+
- `sentry.trace.parent_span_id` — not linked unless using the web tracing stack
|
|
261
|
+
- `sentry.replay_id` — not automatically attached to log events in React Native (mobile
|
|
262
|
+
replay uses a different linking mechanism)
|
|
263
|
+
- `server.address` — server-side only
|
|
264
|
+
- `payload_size` — web-only
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Log Correlation with Traces
|
|
269
|
+
|
|
270
|
+
When tracing is enabled, logs emitted inside an active span are **automatically
|
|
271
|
+
correlated** in the Sentry UI. Navigate from a log to its parent span or from a trace to
|
|
272
|
+
all logs emitted during it.
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
Sentry.init({
|
|
276
|
+
dsn: "YOUR_DSN",
|
|
277
|
+
enableLogs: true,
|
|
278
|
+
tracesSampleRate: 1.0,
|
|
279
|
+
integrations: [
|
|
280
|
+
Sentry.reactNavigationIntegration(), // auto-instruments screen transitions
|
|
281
|
+
],
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
// Inside a Sentry span, logs get linked automatically
|
|
285
|
+
await Sentry.startSpan({ name: "checkout", op: "ui.action" }, async () => {
|
|
286
|
+
Sentry.logger.info("Validating cart", { cartId: cart.id });
|
|
287
|
+
await validateCart();
|
|
288
|
+
|
|
289
|
+
Sentry.logger.info("Initiating payment", { gateway: "stripe" });
|
|
290
|
+
await processPayment();
|
|
291
|
+
|
|
292
|
+
Sentry.logger.info("Checkout complete", { orderId: newOrder.id });
|
|
293
|
+
});
|
|
294
|
+
// All three logs are linked to the "checkout" span in the Sentry trace view
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Practical Patterns
|
|
300
|
+
|
|
301
|
+
### Screen lifecycle logging
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
function ProductScreen({ route }) {
|
|
305
|
+
const { productId } = route.params;
|
|
306
|
+
|
|
307
|
+
useEffect(() => {
|
|
308
|
+
Sentry.logger.info("Screen mounted", {
|
|
309
|
+
screen: "ProductScreen",
|
|
310
|
+
productId,
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
return () => {
|
|
314
|
+
Sentry.logger.debug("Screen unmounted", { screen: "ProductScreen" });
|
|
315
|
+
};
|
|
316
|
+
}, []);
|
|
317
|
+
|
|
318
|
+
const handlePurchase = async () => {
|
|
319
|
+
Sentry.logger.info(Sentry.logger.fmt`User initiated purchase for product ${productId}`);
|
|
320
|
+
try {
|
|
321
|
+
const result = await purchaseProduct(productId);
|
|
322
|
+
Sentry.logger.info("Purchase succeeded", {
|
|
323
|
+
productId,
|
|
324
|
+
orderId: result.orderId,
|
|
325
|
+
});
|
|
326
|
+
} catch (err) {
|
|
327
|
+
Sentry.logger.error("Purchase failed", {
|
|
328
|
+
productId,
|
|
329
|
+
reason: err.message,
|
|
330
|
+
code: err.code,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### API call logging
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
async function fetchUserData(userId: string) {
|
|
341
|
+
Sentry.logger.debug(Sentry.logger.fmt`Fetching user data for ${userId}`);
|
|
342
|
+
|
|
343
|
+
const startTime = Date.now();
|
|
344
|
+
|
|
345
|
+
try {
|
|
346
|
+
const response = await api.get(`/users/${userId}`);
|
|
347
|
+
Sentry.logger.info("User data fetched", {
|
|
348
|
+
userId,
|
|
349
|
+
durationMs: Date.now() - startTime,
|
|
350
|
+
status: response.status,
|
|
351
|
+
});
|
|
352
|
+
return response.data;
|
|
353
|
+
} catch (err) {
|
|
354
|
+
Sentry.logger.error("User data fetch failed", {
|
|
355
|
+
userId,
|
|
356
|
+
durationMs: Date.now() - startTime,
|
|
357
|
+
status: err.response?.status,
|
|
358
|
+
message: err.message,
|
|
359
|
+
});
|
|
360
|
+
throw err;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Redux action logging
|
|
366
|
+
|
|
367
|
+
```typescript
|
|
368
|
+
// Log significant state transitions alongside Redux breadcrumbs
|
|
369
|
+
const sentryReduxEnhancer = Sentry.createReduxEnhancer({
|
|
370
|
+
configureScopeWithState: (scope, state) => {
|
|
371
|
+
scope.setTag("user.plan", state.user.subscription);
|
|
372
|
+
},
|
|
373
|
+
});
|
|
374
|
+
|
|
375
|
+
// In your reducers or middleware
|
|
376
|
+
function checkoutMiddleware(store) {
|
|
377
|
+
return (next) => (action) => {
|
|
378
|
+
if (action.type === "checkout/completed") {
|
|
379
|
+
Sentry.logger.info("Checkout completed via Redux", {
|
|
380
|
+
orderId: action.payload.orderId,
|
|
381
|
+
total: action.payload.total,
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
return next(action);
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Configuration Reference
|
|
392
|
+
|
|
393
|
+
| Option | Type | Default | Description |
|
|
394
|
+
| --------------------------- | ---------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
395
|
+
| `enableLogs` | `boolean` | `false` | Master switch — must be `true` for all logging features |
|
|
396
|
+
| `enableAutoConsoleLogs` | `boolean` | `true` | When `enableLogs: true`, automatically capture `console.*` calls. Set `false` to disable auto-capture and use only manual `Sentry.logger.*` (SDK ≥8.14.0) |
|
|
397
|
+
| `beforeSendLog` | `(log) => log \| null` | `undefined` | Filter/mutate logs before transmission |
|
|
398
|
+
| `consoleLoggingIntegration` | integration | not added | Capture `console.*` calls as structured logs |
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## Performance Considerations
|
|
403
|
+
|
|
404
|
+
- **Log volume:** Every `Sentry.logger.*` call is batched and sent asynchronously —
|
|
405
|
+
there is no synchronous network overhead per call.
|
|
406
|
+
- **Sampling:** Unlike errors and transactions, logs do not currently support sampling
|
|
407
|
+
rates. Use `beforeSendLog` to drop entire log levels in production (e.g., drop `trace`
|
|
408
|
+
and `debug`).
|
|
409
|
+
- **Size limit:** Log payloads over **1 MB** are dropped server-side.
|
|
410
|
+
If logs are silently disappearing, check your Sentry org stats.
|
|
411
|
+
- **Missing logs on crash:** If the app terminates before the SDK flushes its buffer,
|
|
412
|
+
the most recent logs may not reach Sentry.
|
|
413
|
+
This is a known limitation under active improvement.
|
|
414
|
+
- **`console.*` forwarding overhead:** `consoleLoggingIntegration` wraps native console
|
|
415
|
+
methods. In development this is fine; in production, scope it tightly using the
|
|
416
|
+
`levels` option.
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## Known Limitations
|
|
421
|
+
|
|
422
|
+
| Limitation | Details |
|
|
423
|
+
| -------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
424
|
+
| Crash buffer loss | Logs buffered since last flush are lost on unexpected termination |
|
|
425
|
+
| No per-log sampling | Use `beforeSendLog` to reduce volume; sampling is all-or-nothing |
|
|
426
|
+
| 1 MB size cap | Logs larger than 1 MB are dropped server-side |
|
|
427
|
+
| No `browser.*` attributes | React Native emits no browser context — these columns are empty in the Logs UI |
|
|
428
|
+
| Session Replay not on logs | Expected — mobile replay doesn’t populate this attribute on log events; replay is still linked via trace context |
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## Troubleshooting
|
|
433
|
+
|
|
434
|
+
| Issue | Solution |
|
|
435
|
+
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
436
|
+
| Logs not appearing in Sentry | Check `enableLogs: true` is set in `Sentry.init()` |
|
|
437
|
+
| SDK version too old | Upgrade to `@sentry/react-native` ≥7.0.0 for `Sentry.logger`; ≥7.0.0 for `consoleLoggingIntegration`; ≥7.8.0 for scope attribute setters |
|
|
438
|
+
| `logger.fmt` not creating `parameter.*` attributes | Ensure it is used as a tagged template literal — not as the function call `Sentry.logger.fmt(...)` |
|
|
439
|
+
| Logs disappearing silently | Check Sentry org stats for rate limiting or logs exceeding 1 MB |
|
|
440
|
+
| Attribute values showing `[Filtered]` | Server-side PII scrubbing rule matched — adjust **Data Scrubbing** settings in your Sentry project |
|
|
441
|
+
| `console.log` calls not forwarded | Add `consoleLoggingIntegration()` to `integrations` and ensure the `levels` array includes `"log"` |
|
|
442
|
+
| Too many logs in production | Use `beforeSendLog` to drop `trace`/`debug` levels when `!__DEV__` |
|
|
443
|
+
| Logs not linked to traces | Enable tracing (`tracesSampleRate > 0`) and emit logs inside a `Sentry.startSpan()` callback |
|
|
444
|
+
| Scope attributes not attaching | Upgrade to ≥7.8.0 for `getGlobalScope().setAttributes()` support |
|