LoggerPro 2.1 Rilasciato: Configurazione JSON, ExeWatch, LogFmt e Molto Altro
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
MinimumLevelruntime - 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
GetCurrentLogFileNamesui 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
- Repository GitHub
- Release ZIP
- Issue Tracker
- Pacchetto BOSS
- Documentazione LoggerPro 2.0 · Documentazione LoggerPro 1.x
Buon logging.
Comments
comments powered by Disqus