登录深循环时,是否有记录器允许在当前线程中生成日志消息,然后从另一个线程将其写入磁盘?
由于在磁盘上写入是最长的操作,因此这应该可以提高记录器的效率。
或者由于缓存可以忽略不计?
答案 0 :(得分:3)
将操作排队等待另一个线程处理然后立即返回的记录器(或任何程序,实际上)称为异步。异步记录器确实存在。这是我用过的一个:g2log。它是跨平台的,并在Windows和Linux上进行了测试。
异步日志记录对您有什么好处,取决于您记录的内容。
答案 1 :(得分:1)
你在哪里登录?视窗? Linux呢?
如果您使用的是Linux并且在性能敏感的环境中工作,那么您可以查看LTTng。关于他们的记录方法有一个FOSDEM Talk (Youtube)。它的本质是:不记录字符串,而是记录(共享)内存的错误代码和参数,并使用单独的进程将日志写入磁盘(映射到另一个进程的共享内存在核心转储中存活)。
答案 2 :(得分:1)
另一个异步记录器来自POCO库: