寻找有关如何解决以下问题的意见。我的 ColdFusion 9 应用程序有一个简单的记录器,可以将文本写入文件。在我的开发机器上,该文件是本地的,因此我可以使用“tail -f”或 CFB 的 TailView 来观看它。我想要一个工具来在它部署在生产服务器上时对其进行监视。问题是:生产是在共享 CF 托管提供商处进行的,该提供商不允许 RDS 文件访问或目录观察程序网关。我想知道一个带有元刷新标签的页面,或者如果我想要更奇特的东西,AJAXy 可以达到相同的效果。想法?是否已经存在这方面的工具?
我可能会尝试这个,但我希望有一些“更完整”的东西:通过http跟踪日志文件
您可以使用以下 PHP 脚本:
<?php
header("Content-Type: text/plain");
set_time_limit(0);
passthru("tail -F -n +0 log.txt");
?>
以下伪代码受到此 Java 解决方案的启发,并且根本没有经过测试:
if (NOT structKeyExists(application, "log") {
application.log = fileOpen('log.txt', 'read')
}
while(NOT FileisEOF(application.log)) {
writeOutput(fileReadLine(application.log) & "<br/>");
}
将其放在具有元刷新的页面上,我认为您可能正在做生意。
我为我的用例创建了以下 bash 脚本 (tail.sh)
它使用“lynx”获取文件列表,从中获取所需的文件大小,并在无限循环中尝试获取文件的一部分
我创建了一个 powershell 脚本
while ($true) {
$request = [System.Net.WebRequest]::Create("https://raw.githubusercontent.com/fascynacja/blog-demos/master/gwt-marquee/pom.xml")
$request.AddRange(-2000)
$response = $request.GetResponse()
$stream = $response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($stream)
$content = $reader.ReadToEnd()
$reader.Close()
$stream.Close()
$response.Close()
Write-Output $content
Start-Sleep -Seconds 30
}
您可以根据自己的需要调整范围和秒数。另外,如果需要,您可以轻松地为特定搜索词添加颜色模式。您还可以将输出重定向到文件。
我知道这很老套,但是您是否考虑过登录数据库?如果您在表中为日志条目添加时间戳,则可以使用 HTTP 缓存标头向服务器传达您应该看到的新数据。