L'importanza del logging

di Gianni Tomasicchio - 19 giugno 2008

Oggi ho ricevuto una mail inviata automaticamente da un mio applicativo di cui avevo quasi dimenticato l'esistenza.

Questo applicativo gira ormai da diversi anni e quindi non necessita di manutenzione correttiva. Grazie a diversi script lanciati periodicamente sul server, tutte le operazioni di backup dei dati e di ottimizzazione e controllo delle tabelle del database avvengono automaticamente.

Potete quindi immaginare la mia sorpresa nel leggere in questa mail di notifica che si era verificato un errore durante l'esecuzione di una query. Superato lo shock mi sono collegato al server di produzione è sono andato a cercare i diversi file di log generati dal software in caso di errore.

Devo ammettere che la decisione maniacale di registrare tutti i dettagli dell'errore, lo stack trace e perfino tutti i dati presenti in $_POST, $_GET, $_COOKIE, $_SESSION e $_SERVER sul log si è dimostrata lungimirante.

Grazie a questa marea di informazioni sono riuscito a capire cosa era successo: una combinazione di dati inseriti dall'utente più unica che rara! E adesso la morale della favola: per quanto si possa esser bravi a realizzare applicazioni in PHP, prima o poi un utente riuscirà a mandarle in errore.

A quel punto ci si ritrova come dei naufraghi, alla ricerca di un file di log a cui aggrapparsi. P.S.: anche l'idea di inviare una notifica via mail non è da sottovalutare.

1 commento

1 Marco Grazia Marco Grazia venerd́ 20 giugno 2008, ore 11:57
C'è una legge di Murphy in tal proposito, e comunque, conosco una ragazza che è riuscita a lanciare contemporaneamente due screen saver su Windows, uno originale di Windows e uno mio realizzato in VisualBasic.
Non nego che devo aver commesso qualche errore proprio riguardo la notifica al sistema dell'esecuzione esclusiva del programma, ma, dopo prove fatte non ero mai riuscito nell'intento di avere due screen saver in esecuzione contemporaneamente, lei sì perché ho scoperto dopo era un problema di tempistiche, bisognava prima lanciare il mio salva schermo e poi quello di prova dal pannello per gli sfondi di Windows.
Il mio ci metteva qualche secondo in più ad avviarsi e alla fine partivano tutti e due, a volte mandando in crash il sistema e a volte no (Win 9x).
Come vedi il debug non si ferma mai solo agli errori di sintassi :'(
Effettua l'accesso o registrati per inserire un commento