在一个位置查看多个.Net控制台应用程序的输出

时间:2011-09-20 11:30:35

标签: c# .net logging console-application

我有一个C#控制台应用程序,我正在部署大约20次(使用不同的配置设置)并运行。正如您可能想象的那样,很难保持和关注运行的20个应用程序正在发生的事情(我最终将把它们部署为Windows服务),那么有什么能够轻松地在一个地方显示这些内容的输出吗?

我已经考虑过日志文件,但是这些文件可能会变得非常快,而且要打开并查看很多文件 - 我只想要一些输出来检查事情是否仍按预期运行。

修改

我将编写错误并停止/启动数据库的信息。我在这里谈论的是一般处理信息,这与重新访问并不完全相关,但在控制台应用程序中运行时看起来很有趣。

3 个答案:

答案 0 :(得分:4)

我已经成功使用了log4net及其可配置的UdpAppender。然后,您可以将所有UdpAppender指向一台机器,您可以使用Log4View接收Udp消息。

由于它是可配置的,您可以在生产中安装和调试时使用它,然后将日志记录级别增加到仅输出ERROR消息而不是DEBUG或INFO消息。

http://logging.apache.org/log4net/

http://www.log4view.com

http://logging.apache.org/log4net/release/config-examples.html

答案 1 :(得分:2)

也许是因为我来自繁重的数据库背景,但是如何使用SQL Server和Log表来跟踪不同应用程序之间的活动?

DB面向并发,并且可以轻松处理将数据插入到同一个Log表中的多个应用程序,您还可以根据需要获得切片和切块的选项,利用已有的聚合函数在数据库环境中。

如果沿着这条路走下去,您可能需要考虑维护该表(日志保留期等)。

您还可能开始使用Splunk等工具来整理所有日志数据,并针对系统或环境故障启动相应的应用程序故障(如果正在跟踪这些故障)。

答案 2 :(得分:0)

我是第二个MikaelÖstberg并建议使用记录器库(log4net或nlog)。有许多选项可以将消息发送到数据库或队列等等...由于您可以轻松地打开或关闭日志记录,您甚至可以将它作为监视器挂钩保存在您的服务中,以防发生奇怪的事情