DSL Query Language

Powerful query language for searching and filtering log entries.

Basic Syntax

Simple Equality

"level = 'error'"

Multiple Conditions

"level = 'error' AND service = 'api'"

OR Logic

"level IN ('error', 'warn') OR service = 'worker'"

Grouping

"(level = 'error' OR level = 'warn') AND service = 'api'"
Operators

Comparison

level = 'error'
level != 'debug'
attrs.status > 500
attrs.duration < 1000

Pattern Matching

msg LIKE '%payment%'
service ILIKE '%api%'
msg CONTAINS 'payment failed'

Membership

level IN ('error', 'warn')
service NOT IN ('worker', 'cron')
Building Queries Programmatically
import { buildQuery } from '@lightning-logs/sdk'

const query = buildQuery({
  level: ['error', 'warn'],
  service: ['api'],
  text: 'payment',
  operator: 'AND'
})
// Returns: "level IN ('error', 'warn') AND service = 'api' AND msg CONTAINS 'payment'"
JSONB Fields
// Access nested JSONB fields
attrs.status = 500
attrs.user.email = 'user@example.com'
attrs.metadata.tags IN ('production', 'critical')

// Check if key exists
attrs.error EXISTS

// JSONB contains
attrs.tags @> '["error", "critical"]'