如果我正在开发静态库,我有哪些日志记录选项?
我的图书馆是:
- 用C写的
- 线程安全 - >可能在多线程环境中使用
- 因为它用作传输层,所以应该是“以性能为导向”
我拥有的选项:
- 使用OutputDebugString() - 我真的不喜欢它。首先它使用全球锁和&缓冲所以所有调用者都是同步的,可能会掩盖并发问题。其次,它可能会影响性能。最后,每个人都可以打开DebugView并查看我的日志。
- 写入文件 - 我也不喜欢它。基本上是由于与上述相同的问题。
- 使用ETW框架 - 我试图使用它。它似乎更适合DLL / EXE,因为我需要知道安装可执行文件的绝对路径,以便跟踪事件。它不适合静态库场景,因为我不知道它。
醇>
还有其他建议吗?