将事件日志用作临时日志存储

本文关键字:日志 存储 事件 | 更新日期: 2023-09-27 18:00:42

我们目前正在设计一种组织范围的日志记录机制(基于C#)。其中一个要求是将日志记录写入临时存储,然后将其移动到中央数据库,以节省性能。

我们目前正在评估临时存储的两个选项——一个是内存中的数据库,如SQL CE,另一个是windows的事件日志。我们不确定事件日志是否适合此任务。我们需要能够承受沉重负载(每秒约50次呼叫)、易于阅读且可靠的东西。

你觉得怎么样?事件日志是否适合这些要求?is的表现如何?如有任何见解,我们将不胜感激。

谢谢!

将事件日志用作临时日志存储

首先,这是解决方案,但不一定是最佳方案,因为它确实取决于您的需求。我们有一个固定大小的文件文本文件,用作循环日志。我们有固定长度日志消息的好处,所以这对我们来说很有效。每天一次,在一个安静的时间,服务器提取它尚未读取的日志条目。它每秒可以处理几百个条目而不需要流汗。如果服务器没有及时提取足够的数据,旧的条目可能会被新的条目覆盖,但由于文件的大小,这种情况不太可能发生,因为我们还可以提前大致了解每天的最大条目数。

但正如我所说,这在很大程度上取决于您的需求,即哪种解决方案是最好的。我没有使用过C#事件日志,但如果它们与旧的Windows NT事件日志类似,那么它的好处是可以在客户端程序不做任何事情的情况下从外部读取。

我建议您使用MongoDB。因此,也许您也可以将其用作中央存储,为本地和中央存储获得相同的基础架构。

将本地日志项传输到中央数据库可能是一项艰巨的工作。您必须处理所有可能的异常、中断等。因此,我建议考虑使用SQL Server Compact 4.0和Microsoft Sync Framework的解决方案。

我认为实现单向面向服务的同步解决方案是可能的。

此外,SQL Server Compact 4.0的数据库大小限制为4GB,可处理250个以上的并发连接。此外,您还可以选择将x86和x64引导程序包包含在一次性应用程序中。