• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2023-07-07 16:40 Aet 隐藏边栏 |   抢沙发  11 
文章评分 4 次,平均分 5.0

使用介绍

  1. 默认的

  1. 创建一个多线程日志记录器
    1. 创建的日志记录器是多线程的,这意味着它可以被多个线程同时使用,而不会发生竞争条件或数据损坏
    2. 用于创建多线程的循环日志记录器
  2. 循环日志记录器是指在达到指定大小后,会自动循环覆盖旧的日志文件并创建新的日志文件来存储日志消息
    1. 循环日志记录器还可以设置要保留的旧日志文件的最大数量。
    2. 当达到最大数量时,最旧的日志文件将被删除,以保持指定数量的日志文件

  1. 工厂方法创建异步记录器
    1. 使用异步日志记录器,日志消息将被异步地写入日志文件,而不会阻塞主线程的执行

  1. 异步记录器,更改线程池

  1. 创建共享同个接收器的多个记录器

  1. 创建具有多个接收器的记录器,每个接收器都有自己的格式和级别

  1. 打印类

  1. fmt格式化

线程安全

非线程安全函数

线程安全记录器

  1. 要创建线程安全记录器,请使用 _mt 工厂函数

  1. 单线程记录器

线程安全接收器

  1. 以_mt(例如daily_file_sink_mt)结尾的接收器

非线程安全接收器

  1. 以_st(例如daily_file_sink_st)结尾的接收器

记录器

工程方法函数创建

访问记录器

  1. 在任何地方可以使用线程安全的get获得操作记录器的共享指针
  2. 由于可能导致代码变慢,所以一个好的方法是在恰当的地方持有这个共享指针,不用总是去获取(获取意味着要操作锁)

手动创建记录器

  1. 手动创建(通过构造)的记录器不会自动注册,所以调用get是获取不到的
  2. 所以手动创建的记录器需要注册一下

关于异步记录器

  1. 对于异步日志记录,spdlog 使用带有专用消息队列的共享全局线程池
  2. 它在消息队列中创建固定数量的预分配槽(64 位中每个槽约 256 字节),可以用下面方式修改

自定义格式

应用于所有注册的记录器

特定的记录器

特定接收器对象

flag

对齐

自定义flag

全局级别

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2023-07-08
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享