2、spdlog使用---spdlog的线程安全

本文介绍了在使用spdlog时如何确保线程安全性。强调了不应从多个线程同时调用非线程安全函数,如set_error_handler和logger::sinks()。建议使用_MT工厂函数创建线程安全的日志记录器,并区分线程安全(_mt)与非线程安全(_st)的sink。
摘要由CSDN通过智能技术生成

非线程安全函数
以下函数不应从同一日志记录器对象的多个线程同时调用:

set_error_handler(log_err_handler);
logger::sinks() - 返回非线程安全的向量引用,因此不要同时修改它(例如 logger->sinks().push_back(new_sink);)
注意:此限制适用于所有类型的日志记录器("_mt" 或 "_st")。

日志记录器
要创建线程安全的日志记录器,请使用 _mt 工厂函数。

例如:

auto logger = spdlog::basic_logger_mt(...);
要创建单线程日志记录器,请使用 _st 工厂函数。

例如:

auto logger = spdlog::basic_logger_st(...);
Sinks
线程安全的 sinks:以 _mt 结尾的 sinks(例如 daily_file_sink_mt)
非线程安全的 sinks:以 _st 结尾的 sinks(例如 daily_file_sink_st)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knowledgebase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值