0

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

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

echo Something bad happened | log_tool

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

是否有任何现有的软件可以帮助我?(比如,memcached-backed-by-a-shared-database 类型的东西?)

4

1 回答 1

1

这可能不是一个确切的答案,但 Windows 事件日志旨在完全执行(我认为)您想要执行的操作。

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

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

事件日志被设计为具有合理的性能;如果您要处理大量日志,log4Net 允许您批量处理日志。

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

于 2012-10-16T11:56:25.917 回答