Penso che sia semplicemente necessario uno schema di registrazione migliore.
Se c'è un problema di prestazioni:
- Acquista un HDD più veloce, idealmente dedicato alla registrazione
- Invia le tracce, in UDP o simili, a un server il cui unico ruolo è la registrazione, puoi dividere i log su più server se il volume è così alto
- Utilizza le macro per la registrazione e elimina i livelli inferiori dal codice nella modalità di rilascio
Se si tratta di un problema di archiviazione:
- Archivio! Comprimiamo i log al volo. I file vengono ruotati spesso (50 MB non compressi) e portano un timestamp in modo che possano essere organizzati e cercati
- Sposta! Mantieni solo i file più recenti nella directory corrente, sposta i vecchi file su un disco più economico
- Rimuovi! I file di registro non sono pensati per vivere per sempre.
In entrambi i casi, potresti voler effettuare una verifica dei log, potrebbe essere che le tue pratiche di registrazione non siano adeguate all'ambiente in cui ti stai evolvendo.
Ad esempio, dove lavoro, abbiamo server che elaborano alcune centinaia di transazioni al secondo. Lo schema di registrazione è adattato:
- per una transazione regolare (dove tutto è andato bene), hai una riga di log single (al massimo due, una per l'inizio e un'altra per la fine), riassumendo (minimamente) cosa la transazione era di circa
- per una transazione errata, ottieni una riga (ERRORE con tag) per ogni errore che si è verificato (se diversi)
- quando è necessario eseguire il debug, questo volume viene moltiplicato per circa 10 - 20
- in locale (sviluppo), questo volume viene moltiplicato per circa 100 a 200 (le tracce supplementari vengono rimosse dal preprocessore in modalità di rilascio)
Alcune delle nostre applicazioni più prolisse rilasciano file da 50 MB due volte al secondo (che è solo ~ 15 MB una volta compressi). I loro log sono conservati per 14 giorni ancora.
Quando un cliente ti chiama, chiedendo perché la transazione che ha fatto 3 giorni fa a circa 14 ore o forse 15 ore (ora locale per lui, ovviamente) non è riuscita, non puoi rispondere senza log. E no, non può riprodurre il problema, i dati sono cambiati da allora.