Summary
The ChromaLogger interface provides structured logging for transport-level events (request/response, errors). Currently only a noop() implementation exists. Users who use SLF4J (Logback, Log4j2 via SLF4J) have no out-of-the-box bridge.
Proposal
Add a Slf4jChromaLogger that implements ChromaLogger and delegates to an SLF4J Logger:
debug(event, fields) → logger.debug("{} {}", event, fields)
warn(event, fields) → logger.warn("{} {}", event, fields)
error(event, fields, throwable) → logger.error("{} {}", event, fields, throwable)
- Structured fields formatted as key=value pairs or MDC entries
Usage
Client client = ChromaClient.builder()
.baseUrl("http://localhost:8000")
.logger(Slf4jChromaLogger.create()) // or .create("custom.logger.name")
.build();
Considerations
- SLF4J should be an optional dependency (provided scope in Maven) — users who don't use SLF4J shouldn't pull it in
- Consider MDC (Mapped Diagnostic Context) for structured fields vs inline formatting
- Factory method pattern:
Slf4jChromaLogger.create() uses default logger name, .create(String name) for custom
- Java 8 compatible
References
ChromaLogger interface: src/main/java/tech/amikos/chromadb/v2/ChromaLogger.java
- Builder wiring:
ChromaClient.Builder.logger(ChromaLogger)
- SLF4J API: https://www.slf4j.org/
Summary
The
ChromaLoggerinterface provides structured logging for transport-level events (request/response, errors). Currently only anoop()implementation exists. Users who use SLF4J (Logback, Log4j2 via SLF4J) have no out-of-the-box bridge.Proposal
Add a
Slf4jChromaLoggerthat implementsChromaLoggerand delegates to an SLF4JLogger:debug(event, fields)→logger.debug("{} {}", event, fields)warn(event, fields)→logger.warn("{} {}", event, fields)error(event, fields, throwable)→logger.error("{} {}", event, fields, throwable)Usage
Considerations
Slf4jChromaLogger.create()uses default logger name,.create(String name)for customReferences
ChromaLoggerinterface:src/main/java/tech/amikos/chromadb/v2/ChromaLogger.javaChromaClient.Builder.logger(ChromaLogger)