WebブラウザでPHPエラーログまたはApacheエラーログを表示する方法はありますか?
複数のサーバーにSSHで接続し、「tail」コマンドを実行してエラーログを追跡するのは不便だと思います。オンラインでエラーログ(ストリーミングまたは非ストリーミング)を表示するツール(できればオープンソース)はありますか?
ありがとう
Splunkにはどのような商用およびオープンソースの競合他社がありますか? を参照してください https://github.com/tobi/clarity
シンプルで簡単なツール。
Apache2からエラーログを読み取るスクリプトを作成することをお勧めします。
$Apache_errorlog = file_get_contents('/var/log/Apache2/error.log');
動作しない場合..php関数exec
またはShell_exec
とコマンド 'cat/var/log/Apache2/error.log'を使用して取得しようとしています
編集:マルチサーバー(ウェブサーバーが搭載されている)がある場合は、マシン上にファイルを作成できます。そのスクリプト(ハッシュ接続)にリクエストを送信すると、そのサーバーからログが取得されます。
ログを読み取って印刷するための単純なphpコード:
<?php
exec('tail /var/log/Apache2/error.log', $error_logs);
foreach($error_logs as $error_log) {
echo "<br />".$error_log;
}
?>
要件に応じて、error_logphp変数をhtmlに埋め込むことができます。最良の部分は、tail
コマンドが、サーバーに過度の負荷をかけない最新のエラーをロードすることです。
tail
を変更して、必要に応じて出力を提供できます
例tail myfile.txt -n 100
//最後の100行を表示します
LogHappensをお勧めします: https://loghappens.com 、Webでエラーログを表示できます。次のようになります。
LogHappensは、さまざまな種類のWebサーバーログ形式をサポートし、ApacheおよびCakePHPの解析が付属しており、独自に作成できます。
ここで見つけることができます: https://github.com/qijianjun/logHappens
それはオープンソースで無料です。私はそれをフォークし、devenvまたはpublicenvでより良く機能するようにいくつかの作業を行います。あれは:
この質問は少し古いことは知っていますが、(適切な選択肢がないことに加えて)この小さな(オープンソース)Webアプリを作成するというアイデアが得られました。 https://github.com/ToX82/logHappens 。オンラインで使用できますが、基本的なログインシステムとして.htpasswdを使用します。お役に立てば幸いです。
私はこの解決策を見つけました https://code.google.com/p/php-tail/
それは完全に機能しています。最初にエラーが発生したため、ファイルサイズを変更するだけで済みました。
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 }
そして、デフォルトのサイズを追加しましたが、それは必要ありません
125 lastSize = <?php echo filesize($this->log) || 1000; ?>;