0

我有一个从另一个程序调用的 MFC C++ 库。本质上,我的库只是 OPOS 设备的一个大类。我的 OPOS 类有许多其他类调用静态记录器。记录器要么输出到文件,要么输出到控制台(取决于注册表设置) 好吧,前几天有人制作了该类的 2 个实例,并将实例 1 的日志记录设置为 log1.log,将实例 2 的记录设置为 log2.log

好吧,因为我的日志记录是记录到 log1 的实例 1 的静态部分。当创建实例 2 时,实例 1 和实例 2 现在都写入 log2。我被问到是否可以修复。我开始考虑它,但我不知道该怎么做。我已经做 C++ 大约一年了,所以我不是很精通它,只是想不出一个解决方案。有小费吗?

关于我所做的一些尝试是,我检查了 CurrentThread、CurrentProcess、传入的 DispatchID,它们总是相同的。还有其他建议吗?

虽然我不喜欢如果我不得不将我的日志从静态更改为非静态的工作量的想法,我想如果这是唯一的方法我会这样做。

4

1 回答 1

1

我认为您在静态日志记录类中维护日志文件/控制台句柄,您需要使日志记录非静态或让 log-open 返回一个句柄,随后调用例程将其传递给 log-write 方法。

于 2013-07-13T10:51:59.080 回答