Become a member!

LoggerPro 2.1 Rilasciato: Configurazione JSON, ExeWatch, LogFmt e Molto Altro

🌐
Questo articolo è disponibile anche in altre lingue:
🇬🇧 English  •  🇪🇸 Español  •  🇩🇪 Deutsch

LoggerPro 2.1

LoggerPro 2.1 è fuori. Se fino a ieri usavi la libreria per un file appender e qualche output in console, preparati - questa release trasforma LoggerPro in un vero e proprio toolkit di osservabilità per Delphi. E tutto resta Apache 2.0, cross-platform, retrocompatibile con il tuo codice 2.0.

📘 Vai dritto alla documentazione: LoggerPro 2.1 - La Guida Ufficiale → Ogni feature qui sotto è coperta in dettaglio, con esempi di codice completi e schemi di configurazione JSON.


Cosa Cambia - I Punti Salienti

🔧 Configurazione JSON Senza Ricompilare

Metti un loggerpro.json accanto all’EXE. Gli operatori rimodellano la pipeline di logging al momento del deploy - cambiano backend, regolano soglie, aggiungono o rimuovono appender - senza toccare il sorgente Delphi. Due entry point, a seconda di quanto vuoi spingerti:

// JSON puro → ILogWriter
Log := LoggerProFromJSONFile('loggerpro.json');

// Base JSON + chaining lato codice (es. appender legati alla UI)
Log := LoggerProBuilderFromJSONFile('loggerpro.json')
         .WriteToVCLMemo(Memo1).Done
         .Build;

La validazione stretta dello schema significa che i typo falliscono rumorosamente con messaggi diagnostici che elencano le alternative valide. Niente deploy silenziosamente mezzi rotti.

📡 Osservabilità Cloud ExeWatch

Bridge di prima classe verso ExeWatch - il servizio di osservabilità cloud per applicazioni desktop e backend. Log, eccezioni, breadcrumb, info dispositivo, tutto quello che serve per investigare un incident in produzione, con una dashboard che ti evita di far girare i log file per email.

Collegalo come preferisci - Builder fluente, imperativo NewExeWatchAppender, o JSON puro:

{
  "appenders": [
    { "type": "Console" },
    {
      "type": "ExeWatch",
      "apiKey": "ew_win_xxxxxx",
      "customerId": "Acme Corp",
      "appVersion": "2.3.1"
    }
  ]
}

Nessun init SDK manuale - l’appender ci pensa da solo in Setup.

🏷️ LogFmt - Output Greppabile, Loki-Friendly

Un renderer LogFmt conforme alla spec entra nella famiglia. Output una riga per evento, coppie chiave=valore separate da spazi, valori sicuri nudi e valori non sicuri quotati:

time=2026-04-18T12:30:45.123Z threadid=7932 type=INFO msg="order placed" tag=ORDERS order_id=42 amount=99.95 paid=true

Interrogabile nativamente con Grafana Loki, humanlog, ripgrep, Vector, Promtail, Fluent Bit. Tailalo su Windows con Get-Content -Wait | rg ERROR e hai uno stack di osservabilità da poveri in una singola riga PowerShell.

🌐 Visualizzatore Log HTML Browser-Ready

Un file .html autocontenuto con barra filtri fissa, colorazione riga per livello, ricerca full-text, export CSV/JSON e live tailing. Consegnalo a QA o al supporto e hanno un artefatto di troubleshooting compatto e offline-capable - niente server, niente asset esterni, niente setup.

🏢 FileBySource - Log Per-Tenant, Finalmente

Un nuovo appender che scrive in sottocartelle per-sorgente (pensa per-tenant, per-cliente, per-servizio). Rotazione giorno + dimensione, retention a giorni, pulizia automatica delle cartelle vuote. Abbinato a WithDefaultContext su un sub-logger, ogni connessione ottiene il proprio flusso di log isolato senza ripetere la source a ogni chiamata.

E Ancora

  • Output console UTF-8 con WithUTF8Output - basta CJK, Cirillico o emoji storpiati in container Docker e console Windows
  • Inizializzazione DLL-safe - il deadlock del Windows Loader Lock quando LoggerPro gira in una DLL è sparito
  • Autenticazione ElasticSearch - Basic Auth, API Key, Bearer Token
  • MinimumLevel runtime - cambia il gate globale a runtime, nessun cast
  • Opzione local time per UDP Syslog - per server on-prem che si aspettano local time invece dell’UTC di RFC 5424
  • API GetCurrentLogFileName sui file appender - comoda per flussi di upload, email, riavvio

Perché È Importante

Delphi ha librerie di logging da vent’anni. Quello che 2.1 centra è l’allineamento con come il resto dell’industria spedisce telemetria nel 2026:

  • LogFmt e JSONL per output strutturato, greppabile, machine-friendly
  • Configurazione JSON per flessibilità al deploy senza rebuild
  • Osservabilità cloud via ExeWatch senza scrivere una singola chiamata HTTP
  • Artefatti HTML autocontenuti per scenari di supporto human-friendly

Presi insieme, portano un’applicazione Delphi alla stessa impronta operativa di un servizio .NET o Go - con il codice Object Pascal che già conosci.


Percorso di Upgrade

2.0 → 2.1 è un upgrade drop-in. L’unico breaking change è la rinomina di WriteToHTTP in WriteToWebhook (un find-and-replace basta). Tutto il resto è additivo. Le tue catene Builder 2.0 continuano a compilare; i tuoi appender e renderer esistenti continuano a funzionare.

Delphi minimo: 10.2 Tokyo. Testato fino a Delphi 13 Florence. Gira su Windows, Linux, macOS, Android, iOS.


Parti da Qui

📘 LoggerPro 2.1 — La Guida Ufficiale →

La guida copre ogni feature qui sopra con esempi di codice funzionanti, schemi di configurazione JSON, walkthrough diagnostici degli errori, ricette di interrogazione per l’output LogFmt e un riferimento completo agli appender built-in.

🔗 Link

Buon logging.

Comments

comments powered by Disqus