2009-10-16 11 views
6

Sto per lanciare un sito web abbastanza grande per la prima volta. Ho disattivato tutti i messaggi di errore nel mio php.ini e ora i messaggi di errore sono registrati in un file "error_log" sul mio server.Best practice per la gestione degli errori del sito web in diretta

La mia domanda è, ora che gli errori sono registrati in un file, quali sono i modi migliori in cui gli sviluppatori web continuano a vedere quando/dove si verificano errori sul sito web?

Al momento, sembra che il modo migliore sarebbe controllare costantemente il file error_log ogni giorno, tuttavia questa non sembra la soluzione più efficiente. Idealmente ricevo un'email ogni volta che si verifica un errore (con il messaggio di errore). Qualunque consiglio su come posso mantenere gli errori sarà molto apprezzato!

Extra Info
Running on Shared Server (HostMonster)
Sito Scritto in PHP

risposta

5

Ci sono due funzioni principali in PHP che aiutano a rilevare errori ed eccezioni. Vi suggerisco di dare un'occhiata a loro:

Nella nostra azienda, gestiamo tutti gli errori che si verifica sui nostri siti web con quelle funzioni, definendo i nostri errori e le eccezioni metodi di manipolazione.

Quando si verifica un errore, viene inviata un'e-mail al team degli sviluppatori.

+0

Grazie MaxiWheat. Se devo seguire questa strada, allora su ogni script PHP ho bisogno di includere il mio gestore di errori personalizzato, giusto? – justinl

+0

Sì, quel gestore personalizzato deve essere incluso in ogni script. Se non vuoi preoccuparti, puoi usarlo in un file pre-automatico, maggiori informazioni qui: http://php.net/manual/en/ini.core.php – MaxiWheat

+0

Oppure usa un framework come Laravel per evitare il codice spaghetti . –

0

Lei stesso può email in caso di errori, se non ci fosse posta in ultime ore N.

2

Il posto in cui ho lavorato in precedenza utilizzava un'estensione personalizzata per gestire la registrazione degli errori. Fondamentalmente gli errori INSERT DELAY in un DB con alcune informazioni aggiuntive. Quindi, è stato scritto uno strumento di amministrazione separato per poter facilmente cercare, sfogliare, ordinare e sfoltire manualmente la tabella dei registri.

Si consiglia di non scrivere un'estensione personalizzata, ma di utilizzare il metodo set_error_handler e di scrivere invece su un DB. Se il DB non è disponibile, scrivere su un file come backup. Sarà mondi più facile che gestire un enorme file e un formato unico.

Se lo desideri, puoi anche inviarti dei riepiloghi orali via email, ma non ti suggerisco di inviare altro o di odiare te stesso.

+0

un punto da notare qui è che set_error_handler() non gestisce tutti i tipi di errore (da php.net): I seguenti tipi di errore non possono essere gestiti con una funzione definita dall'utente: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING e la maggior parte di E_STRICT generato nel file in cui viene chiamato set_error_handler(). – AvatarKava

+0

La ricerca di segnalazioni di errori sul meccanismo di segnalazione degli errori non funzionanti è paradossale, vero? –

0

Se non si prevedono molti errori, un feed RSS/ATOM "privato" potrebbe funzionare bene ... per cui non è necessario preoccuparsi se non si ottiene nulla ... ma se si inizia a ricevere "aggiornamenti" sai che ci sono problemi.

0

io non so come Hostmonster gestisce la rotazione dei log, ma in genere si desidera monitorare la dimensione del file error_log . Se la dimensione salta improvvisamente, c'è sicuramente qualcosa che devi controllare per poter ricevere una e-mail che ti dice che le dimensioni del file di log sono saltate inaspettatamente.

Oltre a ciò, è possibile combinare i log degli errori alla fine della settimana e inviarli tramite e-mail a se stessi e eseguire il debug nel fine settimana. Se un errore si verifica solo alcune volte alla settimana, probabilmente non è troppo serio di un problema.

Problemi correlati