将文本消息记录到数据库而不会导致客户端延迟的最简单方法

时间:2012-10-16 11:39:07

标签: database windows logging

我有一堆软件工具安装在50-100台Windows 7用户PC上。这些工具目前都将警告,错误和信息消息记录到每台PC上的tools.log文件中。当我想看看特定PC上的内容时,我需要获取他们的日志文件。我更愿意将所有用户的日志数据存储在中央数据库中,以便我可以对其执行有用的查询。我还想提醒某些灾难性的情况(例如,在插入'触发器上使用数据库来检查某些情况)。

写入日志的软件工具是Windows批处理文件和C ++或C#应用程序。我需要一个API和一个小命令行工具,以便我可以通过两种方式直接写入日志:从使用API​​的应用程序或使用标准批处理文件语法管道传输到日志

echo Something bad happened | log_tool

我的问题是:当我需要快速连续地向日志中回显大量命令时,什么是一个简单的方法不会导致重大减速?例如,如果每个管道导致数据库事务,则它太慢。

是否有任何现有的软件可以帮助我? (比如说,一个由memcached支持的共享数据库类型的东西?)

1 个答案:

答案 0 :(得分:1)

这可能不是一个确切的答案,但是Windows事件日志旨在完成(我认为)您想要做的事情。

您可以通过调用logevent.exe从批处理文件写入事件日志(您可能需要先安装它)。

您可以使用.Net中的众多日志框架之一来写入事件日志(log4Net是我最喜欢的)。

事件日志旨在合理地执行; log4Net允许您批量日志,如果您的数量非常大。

可以通过网络访问事件日志,并且有许多工具可用于监视这些日志,以及相应的工作流程(Nagios,BigBrother,MS MOM)。