如何监视Windows服务文本输出

时间:2014-12-22 15:24:08

标签: c# service console windows-services

对于我的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");

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

4 个答案:

答案 0 :(得分:1)

使用日志框架(例如log4netNLog),您将大大减轻此区域的痛苦。

这些将允许您在单独的配置文件中配置多种输出格式。我已经将一个本土的日志系统转换为log4net。花了大约半天才做到这一点 - 这是一个相对较大的商业应用。

答案 1 :(得分:1)

您可以使用Notepad ++。

如果您通过编写

在命令行中启动它
notepad++.exe -ro "MyLogFile.txt"

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

您可以使用PowerShell中的Get-Content cmdlet来拖尾日志文件

相关问题