Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Monitoring 如何实时监控文本文件_Monitoring_Text Files - Fatal编程技术网

Monitoring 如何实时监控文本文件

Monitoring 如何实时监控文本文件,monitoring,text-files,Monitoring,Text Files,为了在一个封闭的系统中进行调试,我必须将文本输出到一个文件中 有人知道在windows上运行的工具(基于控制台或不基于控制台)可以检测文件的更改并实时输出吗? -与此一起使用,可能要求文件采用特定格式 我曾用于监视我最近构建的组件的文本文件。也许有更好的选择(我在有限的研究中从未发现任何东西),但这似乎很好地解决了问题:) 糟了,我的错,你真的想要一个工具来帮你做这一切 好吧,如果你运气不好,想自己滚;) 我在cygwin下使用“tail-f”。FileSystemWatcher是一个不错的选

为了在一个封闭的系统中进行调试,我必须将文本输出到一个文件中

有人知道在windows上运行的工具(基于控制台或不基于控制台)可以检测文件的更改并实时输出吗?

  • -与此一起使用,可能要求文件采用特定格式
我曾用于监视我最近构建的组件的文本文件。也许有更好的选择(我在有限的研究中从未发现任何东西),但这似乎很好地解决了问题:)

糟了,我的错,你真的想要一个工具来帮你做这一切


好吧,如果你运气不好,想自己滚;)

我在cygwin下使用“tail-f”。

FileSystemWatcher是一个不错的选择,尽管您必须对重复事件的触发稍微小心一点——但记住这一点可以产生很好的结果。

您可以在System.Diagnostics中使用FileSystemWatcher

从MSDN:

公共类观察者 {

}

您也可以点击此链接。

是一个免费的独立工具,可以检测各种文件访问。你可以过滤掉任何不需要的东西。但它不会显示实际发生变化的数据。

我在cygwin中使用了第二个“tail-f”。我假设Win32的Tail也能完成同样的任务。

使用时,您可以执行以下操作:

Get-Content someFile.txt -wait

尾巴是目前为止最好的答案

如果你不使用Windows,你可能已经有了尾巴

如果您确实使用Windows,您可以从中获得大量Unix命令行工具。将它们解压缩并放在路径中的某个位置

然后,只需在命令提示下从日志文件所在的文件夹执行此操作:

tail -n 50 -f whatever.log
这将显示文件的最后50行,并将随着文件的更新而更新

您可以将grep与tail结合起来,并获得很好的效果,如下所示:

tail -n 50 -f whatever.log | grep Error
只给你带“错误”的行


祝你好运

我用它在Windows上执行此操作。它是免费的,并且有一些很好的功能,例如用于跟踪多个文件的选项卡和可配置的突出显示。

只是一个无耻的插件来跟踪答案,但我有一个免费的基于web的应用程序,名为用于查看log4net文件。我加入了自动刷新选项,这样您就可以在不必一直刷新浏览器的情况下进行近实时更新。

是的,我使用了Win32的Tail和Cygwin的Tail。我发现两者都很优秀,尽管我更喜欢Cygwin,因为我能够在internet上高效地跟踪文件而不会崩溃(在某些情况下,Win32的tail在我身上崩溃)


所以基本上,我会在Cygwin上使用tail并将输出重定向到本地机器上的文件。然后,我将在Vim中打开此文件,并在需要时重新加载(:e)

+1表示裸尾。我实际使用的是,它提供了对基本搜索字符串或使用regex的搜索字符串的实时尾部过滤。

我喜欢可以执行多个任务的工具,Notepad++是一个很好的记事本替代品,并且有一个非常好用的文档监视器插件(使用标准msi安装)。它也是便携式的,所以你可以在任何地方使用它的拇指驱动器

对于命令行选项,PowerShell(实际上是一个新的命令行)有一个很好的特性

Get-Content someFile.txt -wait
但也可以在命令行中使用正则表达式进行筛选

Get-Content web.log -wait | where { $_ -match "ERROR" }

为了完成列表,这里有一个链接,指向许多有用工具的GNU WIN32端口(其中包括tail)。
令人惊讶的是,没有人提到Trace32(或Trace64)。这些都是很棒的(免费的)微软实用程序,它提供了一个漂亮的GUI,并突出显示任何错误,等等。它还具有过滤功能,听起来正是您所需要的

试试微软的SMSTrace(现在称为CMTrace,在某些版本的Windows上可直接从“开始”菜单中获得)

它是一个出色的GUI工具,可以实时监控任何文本文件的更新,即使它被另一个文件锁定写入

不要被它的描述所愚弄,它可以监视任何文件,包括.txt、.log或.csv

它监视锁定文件的功能非常有用,这也是该实用程序大放异彩的原因之一


最好的特征之一是线条着色。如果它看到“ERROR”一词,则该行变为红色。如果看到“警告”一词,该行将变为黄色。这使得日志更容易理解。

我编写了一个实用程序来实现这一点:

它使用FileSystemWatcher在本地文件夹或网络共享中查找日志文件中的更改(无需装载,只需提供UNC路径),并将新内容附加到控制台

在github上:


希望这有帮助

我自己做了一个小小的查看器:


蛇尾。这是一个很好的选择。

虽然迟交的答案可能会对某些人有所帮助,但这似乎是一个有趣的windows尾部实用程序

@echo off

set LoggingFile=C:\foo.txt
set lineNr=0

:while1
for /f "usebackq delims=" %%i in (`more +%lineNr% %LoggingFile%`) DO (
    echo %%i
    set /a lineNr+=1
    REM Have an appropriate stop condition here by checking i
)
goto :while1

一种命令提示方式

哈哈,我记得我们是如何创造了一个短语“tailing wget log”(意思是等待很长时间的下载才能完成),正如其他地方提到的,
tail-f
就是这个命令。另外,如果您安装了git,您可能有tail。在记事本++中,对于那些在插件菜单下找不到文档监视器的人,可以使用插件管理器安装它。从网络打开文件时,两者都不起作用:(我发现document monitor只有在我关闭正在写入我试图监视的文件的应用程序后才会更新。Get-Content给了我一个错误,上面写着“该进程无法访问该文件,因为它正被另一个进程使用。”目前似乎没有document monitor插件,但有一个内置的“监视”
查看
菜单底部的选项。在我的路径中。我的路径是什么?它在gnuwin32中,而且:我在这方面运气不好;我试图跟踪的文件每秒写入一次,所以它可能总是处于锁定状态。我得到“无法打开读取:设备或
@echo off

set LoggingFile=C:\foo.txt
set lineNr=0

:while1
for /f "usebackq delims=" %%i in (`more +%lineNr% %LoggingFile%`) DO (
    echo %%i
    set /a lineNr+=1
    REM Have an appropriate stop condition here by checking i
)
goto :while1