我在一个支持许多用户的全球交易系统上工作。每个用户都可以预订、修改、编辑、删除交易。该系统由中央交易捕获服务管理。交易捕获服务会通知所有用户发生的任何更新。
当我们发生崩溃时问题就来了,因为生产环境不可能在测试系统上重新创建,我不得不依赖崩溃转储和日志文件。
但是,这并不能告诉我用户一直在做什么。
我想要一个能够(在崩溃时)转储用户所做操作的历史记录的系统。我添加的任何内容都必须进入实时环境,因此不会对性能产生太大影响。
明智的想法我在每个函数的顶部考虑一个宏,它就像一个堆栈跟踪(只有我可以提供额外的用户信息,如交易 ID、用户对话选择等)。系统将记录堆栈跟踪(在每个线程基础)并将历史记录保存在循环缓冲区中(大小不同,具体取决于您想要捕获的历史记录量)。然后在崩溃时,我可以转储这个历史堆栈。
我真的很想知道是否有人有更好的解决方案,或者是否有人知道现有的框架?
谢谢丰富