PHP: log, registrare un file personalizzato di azioni ed errori
10/04/2019Una delle necessità più impellenti per chi programma è quella di avere un log che registri passo passo quanto accade nello sviluppo del nostro listato.
Talvolta è sufficiente attivare le funzioni di logging errori proprietarie di php, ma non sempre è risolutivo e non si può applicare su hosting condivisi gratuiti del genre altervista.
Ad esempio se abbiamo necessità di 'leggere' le risposte ad interazioni con Database, oppure vogliamo verificare se una variabile sia valorizzata e con quale valore in un determinato punto dello script, oppure semplicemnete vogliamo 'registrare' attività e interazioni.
Poiché si tratta di avere a disposizione uno strumento da richiamare ogni qualvolta ci serva definiamo prima di tutto la funzione da mettere a disposizione:
function registrami($in) {
$ilGiorno = date( "Ymd", time() ); // definiamo la data in formato aaaammgg
$lOra = date( "H:i:s", time() ); // definiamo l'ora in formato hh:mm:ss
$file = $_SERVER['DOCUMENT_ROOT'] . "/MioLog/" . $ilGiorno . ".txt"; // definiamo posizione e nome del file usando la data
file_put_contents( $file, $lOra . " - " . $in . "\r\n", FILE_APPEND ); // inseriamo il contenuto in fondo al file
}
Il sistema presentato realizzerà un file di log per ogni giorno, aggiungendo di volta in volta le righe di log alla fine dello stesso. È quindi facile comprendere come modificando il criterio di assegnazione del nome al file sia possibile realizzare log orari, giornalieri, mensili, annuali...
Da questo punto in poi basterà inviare alla funzione registrami la stringa da registrare nel nostro file di testo con la semplice sintassi
registrami ("Utente $id inserito, Email formato corretto $_POST[mail]");
enjoy ;)