sentry-setup-logging

Setup Sentry Logging in any project. Use when asked to add Sentry logs, enable structured logging, capture console logs, or integrate logging libraries (Consola, Loguru) with Sentry. Supports JavaScript, Python, and Ruby.

getsentry/sentry-agent-skills258 installsApache-2.0Synced Aug 25

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: sentry-setup-logging
description: Setup Sentry Logging in any project. Use when asked to add Sentry logs, enable structured logging, capture console logs, or integrate logging libraries (Consola, Loguru) with Sentry. Supports JavaScript, Python, and Ruby.
license: Apache-2.0
---

# Setup Sentry Logging

Configure Sentry's structured logging feature.

## Invoke This Skill When

- User asks to "setup Sentry logging" or "capture logs in Sentry"
- User wants to integrate logging libraries (Pino, Winston, Loguru) with Sentry
- User asks about `Sentry.logger` or `sentry_sdk.logger`

**Important:** The SDK versions, API names, and code samples below are examples. Always verify against [docs.sentry.io](https://docs.sentry.io) before implementing, as APIs and minimum versions may have changed.

## Quick Reference

| Platform | Min SDK | Enable Flag | Logger API |
|----------|---------|-------------|------------|
| JavaScript | 9.41.0+ | `enableLogs: true` | `Sentry.logger.*` |
| Python | 2.35.0+ | `enable_logs=True` | `sentry_sdk.logger.*` |
| Ruby | 5.24.0+ | `config.enable_logs = true` | `Sentry.logger.*` |

## JavaScript Setup

### 1. Verify SDK version
```bash
grep -E '"@sentry/(nextjs|react|node|browser)"' package.json
```

### 2. Enable in Sentry.init()
```javascript
Sentry.init({
  dsn: "YOUR_DSN",
  enableLogs: true,
});
```

### 3. Console capture (optional)
```javascript
integrations: [
  Sentry.consoleLoggingIntegration({ levels: ["warn", "error"] }),
],
```

### 4. Use structured logging
```javascript
Sentry.logger.info("User logged in", { userId: "123" });
Sentry.logger.error("Payment failed", { orderId: "456", amount: 99.99 });

// Template literals (creates searchable attributes)
Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName}`);
```

### Third-party integrations

| Library | Integration | Min SDK |
|---------|-------------|---------|
| Consola | `Sentry.createConsolaReporter()` | 10.12.0+ |
| Console capture | `Sentry.consoleLoggingIntegration()` | 10.13.0+ |

## Python Setup

### 1. Verify SDK version
```bash
pip show sentry-sdk | grep Version
```

### 2. Enable in init()
```python
sentry_sdk.init(
    dsn="YOUR_DSN",
    enable_logs=True,
)
```

### 3. Stdlib logging capture (optional)
```python
from sentry_sdk.integrations.logging import LoggingIntegration
integrations=[LoggingIntegration(sentry_logs_level=logging.INFO)]
```

### 4. Use structured logging
```python
from sentry_sdk import logger as sentry_logger

sentry_logger.info("User logged in: {user_id}", user_id="123")
sentry_logger.error("Payment failed", order_id="456", amount=99.99)
```

### Loguru integration
```python
from sentry_sdk.integrations.loguru import LoguruIntegration
integrations=[LoguruIntegration(sentry_logs_level=LoggingLevels.INFO.value)]
```

## Ruby Setup

### 1. Verify SDK version
```bash
bundle show sentry-ruby
```

### 2. Enable in init
```ruby
Sentry.init do |config|
  config.dsn = "YOUR_DSN"
  config.enable_logs = true
  config.enabled_patches << :logger  # Optional: capture stdlib Logger
end
```

### 3. Use structured logging
```ruby
Sentry.logger.info("User logged in")
Sentry.logger.error("Payment failed. Order: %{order_id}", order_id: "456")
```

## Log Filtering

### JavaScript
```javascript
beforeSendLog: (log) => log.level === "info" ? null : log,
```

### Python
```python
def before_send_log(log, hint):
    return None if log["severity_text"] == "info" else log
```

## Verification

After enabling logs, emit a test log and check the Sentry Logs dashboard (Explore > Logs):

```javascript
Sentry.logger.info("Sentry logging test");
```

## Troubleshooting

| Issue | Solution |
|-------|----------|
| Logs not appearing | Verify SDK version, check `enableLogs`/`enable_logs` is set |
| Too many logs | Use `beforeSendLog` to filter, reduce captured levels |
| Console not captured | Add `consoleLoggingIntegration` to integrations array |

More Observability skills

← All Observability skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY