2011-10-30 4 views
8

C'è un modo per visualizzare i log degli errori PHP o i log degli errori di Apache in un browser web?Come visualizzare il registro degli errori di PHP o Apache online in un browser?

Trovo scomodo eseguire ssh su più server ed eseguire un comando "tail" per seguire i log degli errori. C'è qualche strumento (preferibilmente open source) che mi mostra i log degli errori in linea (in streaming o non in streaming?

Grazie

risposta

5

È bene fare uno script che legge i log degli errori da apache2 ..

$apache_errorlog = file_get_contents('/var/log/apache2/error.log'); 

se non il suo lavoro .. cercando di ottenere con le funzioni PHP exec o shell_exec e il comando 'cat /var/log/apache2/error.log'

EDIT: Se si dispone di multi-server (i Quess con i server web su di esso) puoi c Reate un file sulla macchina, quando si effettua una richiesta di tale script (collegamento hash) che si ottiene i log da tale server

+1

Non creerà un avvertimento come 'Avviso PHP: file_get_contents (/var/log/apache2/error.log): impossibile aprire lo stream: Autorizzazione negata'? Naturalmente dato che è stato creato un sistema di sicurezza di base. – padawanTony

5

Poiché tutti suggeriscono clarity, vorrei anche menzionare tailon. Ho scritto tailon come alternativa più moderna e sicura a clarity. È ancora nelle sue prime fasi di sviluppo, ma la funzionalità di cui hai bisogno è lì. È inoltre possibile utilizzare wtee se si è interessati solo a seguire un singolo file di registro.

1

ho trovato questa soluzione https://code.google.com/p/php-tail/

E 'perfettamente funzionante. Ho solo bisogno di cambiare il file, perché stavo ricevendo un errore prima.

56  if($maxLength > $this->maxSizeToLoad) { 
57    $maxLength = $this->maxSizeToLoad; 
58    // return json_encode(array("size" => $fsize, "data" => array("ERROR: PHPTail attempted to load more (".round(($maxLength/1048576), 2)."MB) then the maximum size (".round(($this->maxSizeToLoad/1048576), 2) ."MB) of bytes into memory. You should lower the defaultUpdateTime to prevent this from happening. "))); 
59  } 

E ho aggiunto dimensione di default, ma non è necessaria

125  lastSize = <?php echo filesize($this->log) || 1000; ?>; 
0

So che questa domanda è un po 'vecchio, ma (insieme con la mancanza di buone scelte) che mi ha dato l'idea per creare questa piccola applicazione web (open source). https://github.com/ToX82/logHappens. Può essere utilizzato online, ma utilizzerei un .htpasswd come sistema di accesso di base. Spero possa essere d'aiuto.

2

Un semplice codice PHP di leggere il registro e la stampa:

<?php 

    exec('tail /var/log/apache2/error.log', $error_logs); 

    foreach($error_logs as $error_log) { 

     echo "<br />".$error_log; 
    } 

?> 

È possibile incorporare variabile PHP error_log in html secondo il vostro requisito. La parte migliore è il comando tail che caricherà gli ultimi errori che non faranno troppo carico sul tuo server.

È possibile modificare tail per dare uscita come si desidera

Ex. tail myfile.txt -n 100 // darà ultime 100 righe