BLogTracer - Esempi
Scrittura configurata
using B.BLog;
using static B.BStatics.BEnumerations;
BLogTracerConfig config = new BLogTracerConfig
{
LevelLog = BLogTracer.ELevelLog(eLevelLog.Low),
WriteOnFile = true,
WriteOnEventLog = false,
PathFileEvents = @"C:\Logs\MyApp",
PathFileErrors = @"C:\Logs\MyApp"
};
List<Exception>? result = BLogTracer.WriteLog(
eSeverity.INFORMATION,
"ImportService",
"Elaborazione avviata",
config,
LevelLog: BLogTracer.ELevelLog(eLevelLog.Medium));
Con la configurazione attuale, la soglia Low permette il messaggio Medium. Il metodo crea le cartelle mancanti per i percorsi configurati.
Contratto attuale del risultato
Nel codice corrente null non garantisce che tutte le destinazioni abbiano scritto correttamente: può indicare successo, messaggio filtrato oppure un fallimento raccolto internamente ma non restituito. Non usare quindi il solo valore di ritorno come conferma affidabile di persistenza del log.
Scrittura diretta su file
bool requested = BLogTracer.WriteOnFile(
eSeverity.ERROR,
"ImportService",
"Importazione fallita",
PathFile: @"C:\Logs\MyApp",
FileErrors: "errors.log",
FileEvents: "events.log");
Il metodo richiede che PathFile esista; a differenza di WriteLog, non crea la cartella. Il valore true indica che il flusso non ha generato eccezioni, ma l'implementazione corrente non verifica i booleani restituiti dalle singole scritture.
Event Log e multipiattaforma
bool written = BLogTracer.WriteOnEventLog(
eSeverity.WARNING,
"MyApplication",
"Configurazione incompleta");
Su sistemi non Windows restituisce false. Anche su Windows può fallire per sorgente Event Log o permessi e restituisce false senza rilanciare l'eccezione.
WriteAllLog richiede il successo sia del file sia dell'Event Log; di conseguenza restituisce false sui sistemi non Windows anche se il file è stato scritto.
Notifica email degli errori
WriteLog tenta l'invio soltanto quando SendMailOnErrors è true, la severità è ERROR e SenderMailConfig è valorizzato. PasswordIsEncrypted: true decifra la password tramite BCrypter; il sender SQL Server richiede anche una BConnection.
Nel comportamento corrente il testo email viene preparato nel ramo di scrittura file: se WriteOnFile è disabilitato, il corpo può risultare vuoto. Documentare e verificare questo limite prima di proporre configurazioni email senza logging su file.
