Dynamic Log Levels

Debug production without redeploying

Change log verbosity at runtime. Turn on DEBUG for a single user, a specific team, or 1% of traffic — then turn it off when you're done. Same targeting engine as feature flags. No redeployment, no restart, no risk.

Quonfig log level dashboard showing per-environment log levels for API, auth, payments, search, and more

Debug any user in production

Target log levels by user, plan, team, or any custom property. When a customer reports an issue, turn on DEBUG logging for just their account — no one else is affected, no redeployment required.

Use the same targeting engine that powers your feature flags. If you can target a flag at a user, you can target a log level at them too.

Log level detail view showing targeting rules and per-environment overrides
Log level list with different values per environment: WARN in production, DEBUG in development

Per-environment control

WARN in production. INFO in staging. DEBUG in development. Manage every environment from one place, with one config.

Each environment gets its own override rules. Production stays quiet and fast while development stays verbose and helpful. When you need to temporarily bump production to DEBUG, change it in seconds — and revert just as fast.

Same targeting engine as feature flags

All the same operators you use for feature flags work for log levels. PROP_IS_ONE_OF, segments, percentage-based targeting — turn on DEBUG for 1% of traffic to diagnose an issue without drowning in logs.

Property targeting

Target by user ID, email, plan, team, region, or any custom property you send to the SDK. Turn on verbose logging for just one customer.

Segments and groups

Define reusable segments like 'enterprise customers' or 'beta testers' and apply log levels to the whole group at once.

Percentage rollouts

Ramp up DEBUG logging from 1% to 5% to 25% of traffic. Diagnose intermittent issues without overwhelming your log pipeline.

Instant rollback

Every log level change is tracked in the audit trail. See the full diff of what changed, who changed it, and when. Revert instantly if something goes wrong.

No more “who turned on debug logging in prod?” The built-in audit trail shows every change with author and timestamp. Every change is attributable, reviewable, and reversible.

Change history
f3a1b2cRevert “database.query-logger: production DEBUG → ERROR”
a7d9e4fdatabase.query-logger: production DEBUG → ERROR
c2b8f1aauth.session-manager: add DEBUG for user_id=usr_8291
e5d3a9capi.request-handler: production WARN → INFO
b1f7c4epayments.stripe-webhook: add 1% DEBUG rollout

No SDK changes needed

The same SDK that serves your feature flags serves your log levels. One integration, one connection, all capabilities. If you've already set up Quonfig for flags, log levels work out of the box.

terminal

One SDK, everything

Feature flags, config, log levels, and secrets all come through the same SDK. No separate integrations to maintain.

terminal

Real-time updates

Log level changes propagate to your application in seconds via server-sent events. No polling, no restarts, no cache invalidation.

terminal

Language-native

SDKs for Node.js, Python, Ruby, Go, Java, and the browser. Each one feels native to the language and integrates with its logging framework.

Ready to try dynamic log levels?

Same platform, same SDK, same audit trail. Get started in under 5 minutes.