在深度循环中登录时,是否有记录器允许在当前线程中生成日志消息,然后将其从不同的线程写入磁盘?
由于在磁盘上写入是最长的操作,这将提高记录器的效率。
或者,由于缓存的原因,差异是否可以忽略不计?
发布于 2014-06-25 13:54:58
一个记录器(实际上是任何程序)将操作排队以供另一个线程处理,然后立即返回,则称为异步。异步记录器确实存在。这里有一个我用过的:g2log。它是跨平台的,并在windows和linux上进行了测试。
异步日志记录是否对您有任何好处,取决于您记录了多少内容。
发布于 2014-06-25 13:54:32
你在哪里伐木?窗户?Linux?
如果您使用的是Linux,并且在性能敏感的环境中工作,您可以查看LTTng。有一个关于他们的日志记录方法的FOSDEM Talk (Youtube)。它的本质是:不要记录字符串,而是将错误代码和参数写入(共享)内存,并使用单独的进程将日志写入磁盘(映射到另一个进程的共享内存在核心转储中幸存下来)。
发布于 2014-06-25 14:19:44
另一个异步记录器来自POCO库:
https://stackoverflow.com/questions/24410468
复制相似问题