我们有一个应用程序,其部分内容位于 .net、C++ 用户模式和 C++ 驱动程序中。应用程序分为多个可执行文件,这些可执行文件按需运行并使用 LPC 相互通信(进程在不同 session 中运行(winlogon))。
目前我们有一个家庭编写的日志服务,.net 和 c++ 用户模式通过发送 LPC 消息进行通信。 该驱动程序使用 DbgPrint 并且并不总是启用,因为它会导致代码运行速度减慢 30%(我们有大量日志记录)。
我希望将所有日志写入一个地方,最好不要自己编写记录器(我喜欢 log4cpp 和 log4net)。要求是将所有可执行文件和驱动程序写入一个位置,并且开销最小。
我读到 ETW 是一种可行的方法,但是我找不到像 log4cpp 或 log4net 这样使用它的已经编写的记录器。
所以基本上我的问题是,你知道是否已经实现了我可以使用的 log4cpp 和 log4net 的 ETW 附加程序?
最佳答案
这里是 ETW .NET 的示例实现。这不是 log4net 的 ETW。希望这会有所帮助。
关于log4net - 来自 .net、用户模式和驱动程序的 ETW 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2341501/