show-sql writes to System.out, Hibernate’s bind logging prints every value in clear, an OpenTelemetry collector cannot erase what it receives, and a file appender quietly sets a one-year retention. The leaks no code review sees, and how to own the one switch you deliberately keep.
GDPR-compliant logging in Spring Boot, part 2: a build-time test that fails on personal data in log statements
A logging rule that lives in a wiki holds only where its author was looking. How we turned it into a JUnit test that scans every module’s sources, why it must prove it scanned something, and why we why we decided against runtime log masking.
GDPR-compliant logging in Spring Boot, part 1: what must never reach a log line
A record’s toString(), an exception message your global handler logs, an e-mail as the actor: the three leaks that put personal data into almost every Spring API’s logs, and what to write instead.
Deterministic Pagination in Spring Boot: a Tie-Breaker for Pageable Sorting
Why paging over a non-unique sort key returns duplicated or missing rows, and a reusable way to append a unique tie-breaker to every Spring Data sort.
Spring Boot and Elasticsearch: Resilient Indexing with a Buffer Table and a Scheduler
How we send application events to Elasticsearch from Spring Boot through a buffer table and a scheduled, cluster-safe job, so an Elasticsearch outage never fails a business transaction.
Configure Swagger UI in a Spring Boot Application with springdoc-openapi (Spring Boot 2.7, 3 and 4)
A practical springdoc-openapi setup, shown twice where it differs: once for Spring Boot 2.7 (springdoc 1.x, javax) and once for Spring Boot 3 and 4 (springdoc 2.x / 3.x, jakarta). Dependencies, metadata, a working Authorize button for JWT, reverse proxies, error responses and what to switch off in production.




