Logging & Utils

NullLogger

Logger no-op che scarta silenziosamente tutti i messaggi — usato per disabilitare completamente il logging della libreria in produzione o nei test.

Cos'è

NullLogger è un'implementazione no-op dell'interfaccia ILogger: ogni chiamata a debug, warn, error viene scartata senza side effect. Sostituisce ConsoleLogger quando si vuole rendere la libreria completamente silenziosa.

Signature

class NullLogger implements ILogger {
  debug(): void  // no-op
  warn(): void   // no-op
  error(): void  // no-op
}

I metodi non accettano argomenti (li accetta ILogger ma vengono ignorati): la JIT engine elimina le chiamate a costo zero a runtime.

Quando usarlo

ScenarioMotivazione
Produzione silenziosaEliminare rumore di log in ambienti gestiti via piattaforma esterna (Sentry, CloudWatch) dove la libreria non deve emettere su console.*
Test unitariEvitare output spurio durante l'esecuzione di Jest/Vitest senza dover stubbare console globalmente
Hot path performance-criticalQuando ogni microsecondo conta e il logging diagnostico non serve
Ambienti embedded / SSRQuando console non è disponibile o è ridiretto in modo problematico

Esempio: produzione

import { PostgRESTClient, ConsoleLogger, NullLogger } from '@pzeta/postgrest'

const isProd = process.env.NODE_ENV === 'production'

const client = new PostgRESTClient({
  apiUrl: process.env.API_URL,
  logger: isProd ? new NullLogger() : new ConsoleLogger(),
})

Esempio: test

import { describe, it, expect } from 'vitest'
import { BasePostgrestService, NullLogger } from '@pzeta/postgrest'

describe('FattureService', () => {
  it('dovrebbe ritornare la lista vuota senza errori', async () => {
    const service = new FattureService({
      apiUrl: 'http://localhost:3000',
      logger: new NullLogger(), // nessun output durante il test
    })
    const fatture = await service.getAll()
    expect(fatture).toEqual([])
  })
})
Con NullLogger perdi visibilità su filtri ignorati, fallback cache, errori SQLSTATE mappati. In caso di bug, ripristina temporaneamente ConsoleLogger o un logger applicativo per ispezionare i messaggi diagnostici.

Tipi correlati