首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另一个C++线程中的记录器?

问另一个C++线程中的记录器?
EN

Stack Overflow用户
提问于 2014-06-25 13:46:23
回答 3查看 789关注 0票数 0

在深度循环中登录时,是否有记录器允许在当前线程中生成日志消息,然后将其从不同的线程写入磁盘?

由于在磁盘上写入是最长的操作,这将提高记录器的效率。

或者,由于缓存的原因,差异是否可以忽略不计?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-25 13:54:58

一个记录器(实际上是任何程序)将操作排队以供另一个线程处理,然后立即返回,则称为异步。异步记录器确实存在。这里有一个我用过的:g2log。它是跨平台的,并在windows和linux上进行了测试。

异步日志记录是否对您有任何好处,取决于您记录了多少内容。

票数 3
EN

Stack Overflow用户

发布于 2014-06-25 13:54:32

你在哪里伐木?窗户?Linux?

如果您使用的是Linux,并且在性能敏感的环境中工作,您可以查看LTTng。有一个关于他们的日志记录方法的FOSDEM Talk (Youtube)。它的本质是:不要记录字符串,而是将错误代码和参数写入(共享)内存,并使用单独的进程将日志写入磁盘(映射到另一个进程的共享内存在核心转储中幸存下来)。

票数 1
EN

Stack Overflow用户

发布于 2014-06-25 14:19:44

另一个异步记录器来自POCO库:

http://pocoproject.org/docs/Poco.AsyncChannel.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24410468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档