Una soluzione di registrazione deve essere progettata per rendere il più semplice possibile trovare la fonte dei problemi, fornendo allo stesso tempo la profondità necessaria per isolare e rintracciare i bug difficili da trovare.
La registrazione su un singolo file rende abbastanza facile comprendere l'intero sistema, ma può essere facilmente sommersa da troppi dettagli. La registrazione modulare riduce la quantità di rumore, in quanto è possibile esaminare indipendentemente ciascun modulo, ma rende più difficile comprendere il sistema completo. Questi sono due trade off.
Inoltre, anche il livello della registrazione ha un effetto. Se si effettua il logging solo al livello WARNING, ERROR o FATAL, un singolo log è molto più facile da capire, mentre se si effettua il logging a livello DEBUG, la registrazione modulare può avere più senso in quanto la quantità di dettagli che un registro di livello DEBUG può generare può essere schiacciante.
Anche se sembra che tu abbia incontrato i limiti della registrazione basata su file, forse sarebbe meglio accedere a un database. Non si menziona il framework di registrazione che si sta utilizzando (log4j, log4net), ma molti framework consentono di andare oltre la registrazione basata su file. Il vantaggio di accedere a un database è la possibilità di utilizzare query SQL per isolare le informazioni in un modo molto più granulare, quindi cercando in singoli file.
Inoltre potresti voler esaminare gli strumenti di visualizzazione della registrazione per il tuo particolare framework. Piuttosto, semplicemente aprendo un file nel blocco note, alcuni strumenti ti consentono di filtrare facilmente e ottenere una migliore comprensione di qualsiasi problema.
Per quanto riguarda le migliori pratiche, penso che sia chiaro, per piccole quantità di inizio della registrazione di un singolo file. Mentre quel file diventa una travolgente mossa verso un sistema modulare, e quando non è più sufficiente spostarsi su un sink di database.