有没有办法在 Web 浏览器中查看 PHP 错误日志或 Apache 错误日志?
我发现 ssh 到多个服务器并运行“tail”命令来跟踪错误日志很不方便。是否有一些工具(最好是开源的)可以在线显示错误日志(流媒体或非流媒体?
谢谢
读取日志和打印的简单 php 代码:
<?php
exec('tail /var/log/apache2/error.log', $error_logs);
foreach($error_logs as $error_log) {
echo "<br />".$error_log;
}
?>
您可以根据需要在 html 中嵌入 error_log php 变量。最好的部分是tail
命令将加载不会在您的服务器上造成过多负载的最新错误。
您可以更改tail
以根据需要提供输出
前任。tail myfile.txt -n 100
// 它将给出最后 100 行
请参阅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”来获取它
编辑:如果您有多个服务器(我有网络服务器),您可以在机器上创建一个文件,当您向该脚本发出请求(散列连接)时,您可以从该服务器获取日志
我找到了这个解决方案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; ?>;
我知道这个问题有点老了,但是(以及缺乏好的选择)它给了我创建这个小型(开源)网络应用程序的想法。https://github.com/ToX82/logHappens。它可以在线使用,但我会使用 .htpasswd 作为基本登录系统。我希望它有所帮助。
我推荐 LogHappens: https://loghappens.com,它允许你在 web 中查看错误日志,它是这样的:
LogHappens 支持各种 Web 服务器日志格式,它带有 Apache 和 CakePHP 的解析器,您可以编写自己的。
你可以在这里找到它:https ://github.com/qijianjun/logHappens
它是开源和免费的,我将它分叉并做了一些工作以使其在开发环境或公共环境中更好地工作。那是: