Sono uno sviluppatore di un'azienda i cui prodotti sono distribuiti all'estero. Quando un gruppo di supporto arriva chiedendo una definizione del problema, i miei unici strumenti per la diagnosi sono i miei file di registro e una copia del database del cliente. Usando il database e il mio ambiente di sviluppo, ho l'opportunità di riprodurre il caso errato, perché registro i dati in arrivo nel mio modulo e le azioni correlate. Se riesco a riprodurre l'errore con l'aiuto dei dati raccolti, posso correggerlo con il debug. Se non avessi file di registro, allora dovrei dipendere dalla descrizione del cliente o del team di supporto su cosa succede in quel caso (che ha una grande possibilità di fuorviare).
In secondo luogo, il logging mi dà la possibilità di rilevare i colli di bottiglia del mio modulo sul sito distribuito, dal momento che registro la data e l'ora di determinate azioni e quindi posso dare un'occhiata a quale azione consuma quanto tempo.
In aggiunta a ciò, supponiamo che la nostra soluzione sia composta da 6 moduli e che visualizzi i log degli errori nei miei file di registro sui timeout del database. Se questi errori vengono registrati anche in 5 degli altri moduli, la probabilità che si tratti di un problema relativo al server SQL aumenta. Se questo è registrato solo nel mio modulo, allora la probabilità che le mie query siano bacate aumenta. Penso che questo tipo di cose siano indicatori utili.
Informazioni sul tipo di dati che vedo nei miei file di registro dipende dalla configurazione del livello di registro. Se si tratta di un nuovo prodotto, impostiamo il livello di registro su "Tutti" per raccogliere quanti più dati possibile. Ma quando miglioriamo il prodotto, potremmo preferire mantenere il livello di registro su "Errore" per registrare solo l'errore, ma non i registri del livello di informazione, ecc ...