2011-10-30 16 views
8

Czy istnieje sposób, aby wyświetlić dzienniki błędów PHP lub dzienniki błędów Apache w przeglądarce internetowej?Jak wyświetlić rejestr błędów PHP lub Apache w przeglądarce?

Uważam, że jest to niewygodne dla ssh na wielu serwerach i uruchamianie polecenia "ogon" w celu śledzenia dzienników błędów. Czy istnieje pewne narzędzie (najlepiej open source), który pokazuje mi dzienniki błędów online (strumieniowej lub non-strumieniowej?

Dzięki

Odpowiedz

5

można zrobić dobry skrypt, który czyta dzienniki błędów z apache2 ..

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

jeśli jej nie działa .. próbuje go z funkcji php exec lub shell_exec a komenda „kot /var/log/apache2/error.log”

EDIT: Jeśli masz wiele serwerów (i quess z serwerami internetowymi) można Reate plik na komputerze, kiedy złożyć wniosek do tego skryptu (zaszyfrowaną połączenia) można dostać logi z tego serwera

+1

Czy to nie spowoduje utworzenia ostrzeżenia, takiego jak 'Ostrzeżenie PHP: file_get_contents (/var/log/apache2/error.log): nie można otworzyć strumienia: Odmowa uprawnień'? Oczywiście biorąc pod uwagę, że jest ustawiony podstawowy system bezpieczeństwa. – padawanTony

5

Ponieważ wszyscy sugerują clarity, chciałbym również wspomnieć o tailon. Napisałem tailon jako bardziej nowoczesną i bezpieczną alternatywę dla clarity. Wciąż jest na wczesnym etapie rozwoju, ale potrzebna jest tutaj funkcjonalność. Możesz także użyć wtee, jeśli chcesz tylko śledzić pojedynczy plik dziennika.

1

Znalazłem takie rozwiązanie https://code.google.com/p/php-tail/

To działa doskonale. Potrzebowałem tylko zmienić rozmiar pliku, ponieważ najpierw otrzymywałem błąd.

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  } 

I dodałem domyślny rozmiar, ale nie jest to konieczne

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

Wiem, że to pytanie jest nieco stary, ale (wraz z brakiem dobrych wyborów) to dało mi pomysł aby stworzyć tę małą (otwartą wersję) aplikację internetową. https://github.com/ToX82/logHappens. Można go używać online, ale użyłbym .htpasswd jako podstawowego systemu logowania. Mam nadzieję, że to pomoże.

2

Prosty kod php do zapoznania się zalogować i druk:

<?php 

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

    foreach($error_logs as $error_log) { 

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

?> 

Można osadzić error_log zmiennej php w html jak na swoje wymagania. Najlepszą częścią jest polecenie tail załaduje najnowsze błędy, które nie będą zbyt duże obciążenie na serwerze.

można zmienić tail dać wyjście jak chcesz

Ex. tail myfile.txt -n 100 // to da ostatnie 100 wierszy

Powiązane problemy