Sinks 是实际将日志写入目标的对象。每个 Sink 应该负责一个单一的目标(例如文件、控制台、数据库),并且每个 Sink 都有其自己的私有 formatter 对象实例。
每个 logger 包含一个 std::shared_ptr<sink> 的向量。在每次日志调用时(如果日志级别合适),logger 将在其中的每个 sink 上调用 "sink(log_msg)" 函数。
spdlog 的 sink 在名称后添加 _mt(多线程)或 _st(单线程)后缀,以表示线程安全性。虽然单线程的 sink 不能在多个线程中同时使用,但它们更快,因为不使用锁定。
可用的 Sinks
注意:这仅是部分列表。有关完整的 sink 列表,请访问 sinks 文件夹。
注意:从版本 1.5.0 开始,如果需要,spdlog 将创建包含日志文件的文件夹。在此之前,文件夹必须手动创建。
rotating_file_sink
当达到最大文件大小时,关闭文件,将其重命名,并创建一个新文件。最大文件大小和最大文件数量都可以在构造函数中进行配置。
// create a thread safe sink which will keep its file size to a maximum of 5MB and a maxi