我确实创建了一个很好的小型C++跟踪解决方案.在一个进程中一切都很好但是当我从不同的进程打开输出文件时,数据没有被正确写入.我确实用FILE_SHARE_WRITE打开文件,以便在文件打开时写入文件.然后我创建了一个命名的互斥锁,以确保进程之间的正确同步.但似乎这还不够.根据MSDN,这确实在一个过程中起作用,但在不同过程之间起作用.接下来我尝试在每次写入后调用FlushFileBuffers,而互斥锁仍被保持,但数据仍然像这样扭曲
格式是时间进程id /线程id方法输入/ leave/severity命名空间+方法然后是消息文本.
10:29:42.994 7448/2236 }} Dll2.Test.fndll2 L1 -> Duration: 0.094s
10:29:43.040 7448/2236 {{ Dll2.DllMain L1
10:29:43.134 7448/2236 Info Dll2.DllMain L1 Process detach
10:29:43.181 7448/2236 }} Dll2.DllMain L1 -> Duration: 0.141s
}} Dll2.DllMain L1 -10:29:42.681 7448/2236 Info Dll1.DllMain L1 Process attach
10:29:42.728 7448/2236 }} Dll1.DllMain L1 -10:29:42.744 2216/5510:29:42.775 7448/2236 {{ Dll1.Test.fndll1 10:210:29:42.822 7448/2236 Info Dll1.Test.fndll1 10:29:42.837 2216/557610:29:42.853 7448/2236 }} Dll1.Test.fndll1 L110:29:42.884 2216/557610:29:43.306 7448/2236 {{ Dll1.DllMain L1
10:29:43.353 7448/2236 Info Dll1.DllMain L1 Process detach
10:29:43.400 7448/2236 }} Dll1.DllMain L1 -> …Run Code Online (Sandbox Code Playgroud)