Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add getsentry/agent-skills --skill "sentry-setup-logging"
Install specific skill from multi-skill repository
# Description
Setup Sentry Logging in any project. Use when asked to add Sentry logs, enable structured logging, capture console logs, or integrate logging libraries (Pino, Winston, Loguru) with Sentry. Supports JavaScript, Python, and Ruby.
# SKILL.md
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 (Pino, Winston, Loguru) with Sentry. Supports JavaScript, Python, and Ruby.
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.loggerorsentry_sdk.logger
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
grep -E '"@sentry/(nextjs|react|node|browser)"' package.json
2. Enable in Sentry.init()
Sentry.init({
dsn: "YOUR_DSN",
enableLogs: true,
});
3. Console capture (optional)
integrations: [
Sentry.consoleLoggingIntegration({ levels: ["warn", "error"] }),
],
4. Use structured logging
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 |
|---|---|---|
| Pino | Sentry.pinoIntegration() |
10.18.0+ |
| Winston | Sentry.createSentryWinstonTransport() |
9.13.0+ |
| Consola | Sentry.createConsolaReporter() |
10.12.0+ |
Python Setup
1. Verify SDK version
pip show sentry-sdk | grep Version
2. Enable in init()
sentry_sdk.init(
dsn="YOUR_DSN",
enable_logs=True,
)
3. Stdlib logging capture (optional)
from sentry_sdk.integrations.logging import LoggingIntegration
integrations=[LoggingIntegration(sentry_logs_level=logging.WARNING)]
4. Use structured logging
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
from sentry_sdk.integrations.loguru import LoguruIntegration
integrations=[LoguruIntegration(sentry_logs_level=LoggingLevels.WARNING.value)]
Ruby Setup
1. Verify SDK version
bundle show sentry-ruby
2. Enable in init
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
Sentry.logger.info("User logged in")
Sentry.logger.error("Payment failed. Order: %{order_id}", order_id: "456")
Log Filtering
JavaScript
beforeSendLog: (log) => log.level === "info" ? null : log,
Python
def before_send_log(log, hint):
return None if log["severity_text"] == "info" else log
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 |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.