2

假设我们有对速度至关重要的系统(例如统计/分析、套接字编程等),我们如何设计跟踪和日志。

更具体地说,日志和跟踪通常会降低性能(即使我们有关闭机制或冗长的扩展机制)。在这种情况下,是否有任何关于如何“放置”日志/跟踪的参考指南,以便在问题发生时(特别是在生产站点)开发人员/后期制作团队能够查明实际问题。

PS:我来自使用 C/C++ 开发此类应用程序的背景(在 Linux 上运行)

4

1 回答 1

1

您可以在缓冲区中累积日志,您可以使用Google Protocol Buffers来描述和实施。您可以有一个不同的线程定期(每 5 分钟)将此缓冲区清空到磁盘,或通过UNIX 域套接字(或其他Linux IPC 机制)将其发送到一个守护进程,该守护进程监听并将它们写入持久数据库或简单地将它们写入磁盘。

如果您不想访问产生日志的机器上的磁盘,您可以通过常规套接字将它们发送到另一台机器,然后将它们写入该机器上的磁盘。

如果您正在聚合来自多台机器的日志,请考虑使用0MQCrossRoads作为消息队列,以通过网络将您的日志传递到永久存储它们的机器。您可以在此处找到有关将 0MQ 与 Google Protocol Buffers 结合使用的一些信息。

于 2013-03-19T12:23:19.073 回答