如何监视窗口服务文本输出

本文关键字:窗口 服务 文本 输出 监视 何监视 | 更新日期: 2023-09-27 18:35:03

对于我的Windows服务,我有一个将日志条目输出到文本文件的过程。这一切都很顺利,但我无法看到它现场直播。一旦我打开文件以查看日志,它就会停止写入它,因为服务无法写入打开的文件,我假设。

我的问题:有没有办法使用控制台之类的东西来监视此文本输出?此解决方案仅用于调试目的。我不想要GUI或类似的东西 - 只是一些简单的东西来观察我的记录器在做什么。

现在写入我正在执行的文本文件:

RecordDataToLog("Log this");
private void RecordDataToLog(string txtData)
{
    using (System.IO.StreamWriter file = new System.IO.StreamWriter(logFileDir, true))
        file.WriteLine(txtData);
}

我尝试像这样使用Console,但它不起作用 - 没有显示控制台窗口。

Console.WriteLine("Log this");

或者是否有其他文本编辑器或文本文件类型支持写入打开的文件?

如何监视窗口服务文本输出

我用记事本和记事本++打开了文件,并且仍然能够使用StreamWriter写入文件,因此它必须是您用来打开文件的编辑器。记事本根本不刷新内容。您需要重新打开该文件。Notepadd++应该会提示您并询问您是否要重新加载。

PowerShell v3 在 Get-Content cmdlet 上包含一个选项,用于在添加文件时打开文件并打印新内容,类似于 *nix OS 上的尾部:

Get-Content "C:'path'to'log'file" -Wait

通过使用日志记录框架(如 log4net 或 NLog(,您将显着减少这方面的痛苦。

这些将允许您在单独的配置文件中配置多种输出格式。我已经将一个本土的日志记录系统转换为log4net。花了大约半天的时间来完成这项工作 - 这是一个相对较大的商业应用程序。

您可以使用记事本++。

如果在命令行中通过编写

notepad++.exe -ro "MyLogFile.txt"

然后它将以只读模式打开文件。

可以使用 PowerShell 中的 Get-Content cmdlet 来跟踪日志文件

你也可以使用NotePad++的"monitor"工具(它是一个有眼睛的图标(。