ProjectionQuery

Summary

Logging and Debug

The logging system was designed with a framework-first mindset, ensuring:

ProjectionQuery emits logs across three logging levels, each with a clear purpose.


INFO — Execution lifecycle & performance

High-level information about query execution, useful for monitoring and production environments.

Example:

INFO  ProjectionProcessor - Executing ProjectionQuery [from=Customer, to=CustomerName, distinct=false, paging=false]
INFO  ProjectionProcessor - ProjectionQuery executed in 28 ms (1 results)

DEBUG — Query structure & decisions

Provides visibility into how the query was built, without exposing sensitive data.

Example:

DEBUG ProjectionProcessor - ProjectionQuery filters summary: 0 specifications, 1 filters
DEBUG ProjectionProcessor - ProjectionQuery orders applied: 0
DEBUG ProjectionProcessor - ProjectionQuery paging applied: first=0, size=10

TRACE — Detailed internal behavior

Low-level, step-by-step details of query construction. Ideal for deep debugging and understanding complex filter logic.

Example:

TRACE ProjectionProcessor - ProjectionQuery filter added: age GREATER_THAN_OR_EQUAL
TRACE ProjectionProcessor - ProjectionQuery filter added: OR (mainCity equal, secondaryCity equal)
TRACE ProjectionProcessor - ProjectionQuery order added: name ASC

⚠️ TRACE logs are intentionally verbose and should be enabled only for troubleshooting.

← Previous: Custom Filter Handlers · ↑ Back to top · Next → For Spring Boot users