ConsoleLogger
Cos'è
ConsoleLogger è il logger di default del package: implementa l'interfaccia ILogger inoltrando ogni chiamata ai corrispondenti metodi di console. Viene utilizzato automaticamente da PostgRESTClient, BasePostgrestService, PostgrestMfeService e BaseMfePostgrestService quando non si fornisce un'implementazione personalizzata.
Signature
class ConsoleLogger implements ILogger {
debug(message: string, ...args: unknown[]): void
warn(message: string, ...args: unknown[]): void
error(message: string, ...args: unknown[]): void
}
Tutti i metodi sono pass-through di console.debug, console.warn, console.error con la stessa firma variadica.
API
| Metodo | Inoltra a | Note |
|---|---|---|
debug(message, ...args) | console.debug | Tracce di sviluppo (cache hit/miss, URL costruiti, header ricevuti) |
warn(message, ...args) | console.warn | Filtri ignorati (parametri riservati PostgREST), fallback cache, deprecation |
error(message, ...args) | console.error | Errori di rete, errori PostgREST con codici SQLSTATE, eccezioni in handler |
Quando usarlo
- Sviluppo locale — output immediato nella DevTools console del browser o sul terminale Node.
- Default acceptable — la maggior parte dei progetti PZeta non richiede setup esplicito: il package istanzia
ConsoleLoggerautomaticamente. - Test interattivi — utile per debuggare query e cache durante lo sviluppo di service di dominio.
Esempio di iniezione esplicita
import { PostgRESTClient, ConsoleLogger } from '@pzeta/postgrest'
const client = new PostgRESTClient({
apiUrl: 'https://api.example.com',
schema: 'public',
logger: new ConsoleLogger(),
})
Override per logger custom
Per integrare un logger applicativo (Pino, Winston, @pzeta/log, Sentry, ecc.) implementa ILogger:
import type { ILogger } from '@pzeta/postgrest'
import { logger as pinoLogger } from './logger'
class PinoAdapter implements ILogger {
debug(message: string, ...args: unknown[]): void {
pinoLogger.debug({ args }, message)
}
warn(message: string, ...args: unknown[]): void {
pinoLogger.warn({ args }, message)
}
error(message: string, ...args: unknown[]): void {
pinoLogger.error({ args }, message)
}
}
const client = new PostgRESTClient({
apiUrl: 'https://api.example.com',
logger: new PinoAdapter(),
})
AsyncLocalStorage o context che propaga il correlationId su ogni log emesso dalla libreria.Tipi correlati
ILogger— interfaccia cheConsoleLoggerimplementaNullLogger— alternativa silenziosaPostgRESTClient— facade che accettalogger
Logging & Utils
Logger configurabili (ConsoleLogger, NullLogger) per iniettare il logging della libreria e FilterUtils — utility statiche per convertire FilterCriteria type-safe nella sintassi query PostgREST.
FilterUtils
Utility statica per convertire FilterCriteria type-safe in query parameters PostgREST, parsare l'header Content-Range e costruire headers per operazioni bulk e paginate.