对于这种情况,您会推荐哪种日志库或方法:
NLog提供了一个“C”api,但是在托管实现方面实现了它。
那里的许多C日志库(rlog,glog)依赖于宏+预处理,并且不适合用.NET包装而不进行大量修改。
我想我正在寻找具有本机/非托管日志核心的东西,但也是一个不错的.NET托管API。这存在吗?如果这不存在,最接近的是什么?
跟进 - 感谢提及log4net的回复。我认为Log4Net和NLog都在纯托管应用程序中运行正常,但是...我要求构建的应用程序在后台线程上具有非托管I / O,绝对不能被垃圾回收阻止。如果非托管c ++代码必须将“up”调用到托管记录器中,则在垃圾收集发生时,它有可能被冻结200或甚至2000毫秒。这就是为什么我正在寻找一个不受管理的库。 - 戴夫
答案 0 :(得分:1)
你看过log4net了吗?
我不确定核心是否是非托管或托管的,但我已经看到它在几个.NET项目中使用过。
答案 1 :(得分:1)
我在C#和VB .Net项目中使用了很多log4net。因为我没有使用C ++,所以没有在C ++中使用它.Net&几年前Java成为我的主要编程环境。但是我已经使用了log4j和log4net,我可以保证它们的性能和易用性。
链接
答案 2 :(得分:1)
Pantheios可能符合您的要求。它是开源的。
答案 3 :(得分:0)
您能以某种方式向托管的.NET代码公开非托管方法,以便所有日志记录实际上都是从非托管端处理的吗?
我已经使用了C ++的boost库,但它们对我来说效果很好。