我有一个从另一个程序调用的MFC C ++库。基本上我的库只是OPOS设备的一个很大的类。我的OPOS类有许多其他类来调用静态记录器。记录器输出到文件或控制台(取决于注册表设置)那么有一天,有人制作了2个类的实例,并将实例1的日志记录设置为log1.log,将实例2设置为log2.log
因为我的日志记录是实例1的静态部分记录到log1。当实例2被创建时,实例1和实例2现在都写入log2。我被问到是否可以修复。我不得不对此嗤之以鼻,我无法弄清楚我会怎么做。我已经做了大约一年的C ++,所以我不是非常精通它,只是想不出解决方案。有什么提示吗?
关于我所做的尝试,我已经检查了CurrentThread,CurrentProcess,传入的DispatchID,它们总是一样的。还有其他建议吗?
虽然我不喜欢工作量的想法,如果我不得不将我的日志记录从静态更改为非静态,我想如果这是唯一的方法,我会这样做。
答案 0 :(得分:1)
我认为您在静态日志记录类中维护日志文件/控制台句柄,您需要使日志记录非静态或让log-open返回一个句柄,调用例程随后将其传递给日志 - 写方法。