spdlog高性能异步日志框架编译及使用
由于最近在做一个高性能的kv存储引擎需要用到一个日志记录模块。本来想手写一个日志模块但是想想现有的日志框架已经非常成熟了不如直接借用生产级的框架就好。在我看来日志模块有几个常用的功能点高性能吞吐量、异步非阻塞、日志格式、日志轮转等而spdlog框架恰好都具备。spdlog 是业界公认的“高性能异步日志框架”之一而且在 C 领域里几乎是事实标准。在spdlog 业务线程可以把格式化日志直接丢进无锁队列MPMC线程池中直接返回日志异步写入文件中对主线程的影响几乎很小。据官方统计spdlog单线程10–20 万行 / 秒多线程50–100 万行 / 秒日志延迟微秒级。并且该框架已经被大量高知名度的生产级别项目验证过稳定性毋庸置疑接下来让我们看看他是如何使用的。下载地址国内gitee下载地址git clone https://gitee.com/l-super/spdlog.git国外github下载地址git clone https://github.com/gabime/spdlog.git或者直接上gitee上直接下载zip文件也行因为有时候github连接不上。编译成静态库cmake版本4.0.0make版本 3.81c版本 c17 g-9步骤1进入spdlog的目录创建一个 build目录,在build目录中编译mkdir build cd build步骤2cmake编译cmake .. -DCMAKE_CXX_COMPILERg-9 -DCMAKE_C_COMPILERgcc-9 -DCMAKE_CXX_STANDARD17 -DCMAKE_CXX_FLAGS-stdc17 make -j$(nproc)编译完之后在 build 目录里面就会生成一个libspdlog.a静态库文件链接使用我们使用spdlog框架时只需要用到我们刚刚编译的libspdlog.a静态库文件和框架include目录中的所有头文件注意不要带include目录本身。将libspdlog.a和头文件移植到你的项目中在makefile文件中加上这几个参数即可使用了-I 头文件目录 -L 静态库文件目录 -l spdlog.a日志同步demo#include spdlog/spdlog.h int main() { spdlog::info(Hello spdlog!); spdlog::warn(This is a warning); spdlog::error(Something wrong); spdlog::shutdown(); return 0; }同步日志#include spdlog/sinks/basic_file_sink.h int main() { auto logger spdlog::basic_logger_mt(file, app.log); logger-info(Log to file); logger-warn(File warning); spdlog::set_default_logger(logger); spdlog::info(Now default logger writes to file); spdlog::shutdown(); }异步日志#include spdlog/async.h #include spdlog/sinks/basic_file_sink.h int main() { spdlog::init_thread_pool(8192, 1); auto logger spdlog::basic_logger_mtspdlog::async_factory( async, app.log); logger-info(Async log {}, 1); logger-info(High performance); spdlog::shutdown(); }

相关新闻

pandocs高级技巧:Game Boy中断系统与HALT指令的优化使用

pandocs高级技巧:Game Boy中断系统与HALT指令的优化使用

pandocs高级技巧:Game Boy中断系统与HALT指令的优化使用 【免费下载链接】pandocs The single, most comprehensive Game Boy technical reference. 项目地址: https://gitcode.com/gh_mirrors/pa/pandocs Game Boy作为经典的掌上游戏机,其硬件架…

2026/7/12 20:24:41阅读更多 →
【observability】【evaluation23】多模态RAG评估案例分析

【observability】【evaluation23】多模态RAG评估案例分析

案例目标本案例演示如何评估一个多模态RAG(Retrieval-Augmented Generation)系统。与纯文本案例类似,我们分别考虑对检索器(Retriever)和生成器(Generator)的评估。具体来说,本案例使用美国手语(ASL)字母表图像和文本描述作为多模态数据,构建…

2026/7/12 20:19:41阅读更多 →
如何用Cocos Creator开发开心消消乐:新手必备的10个核心技能

如何用Cocos Creator开发开心消消乐:新手必备的10个核心技能

如何用Cocos Creator开发开心消消乐:新手必备的10个核心技能 【免费下载链接】kaixinxiaoxiaole 使用cocos creator 编写的三消游戏 开心消消乐 项目地址: https://gitcode.com/gh_mirrors/ka/kaixinxiaoxiaole 想要学习使用Cocos Creator开发一款像开心消消…

2026/7/12 20:19:41阅读更多 →
AI 工作流可视化编排:从拖拽 UI 到可执行 DAG 的工程化翻译层设计

AI 工作流可视化编排:从拖拽 UI 到可执行 DAG 的工程化翻译层设计

AI 工作流可视化编排:从拖拽 UI 到可执行 DAG 的工程化翻译层设计 一、"画完的流程图和实际跑的通路是两套东西"——可视化编排的语义断裂 可视化编排 AI 工作流的工具(如 Dify、LangFlow、Coze)解决了一个真实需求:让非…

2026/7/12 21:29:45阅读更多 →
如何快速掌握魔兽世界GSE宏编辑器:新手完整教程

如何快速掌握魔兽世界GSE宏编辑器:新手完整教程

如何快速掌握魔兽世界GSE宏编辑器:新手完整教程 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Macro-Compiler …

2026/7/12 21:29:45阅读更多 →
3大核心优势:揭秘Saber插件系统如何让Vue.js静态网站开发事半功倍

3大核心优势:揭秘Saber插件系统如何让Vue.js静态网站开发事半功倍

3大核心优势:揭秘Saber插件系统如何让Vue.js静态网站开发事半功倍 【免费下载链接】saber ()[:::::::::::::> Build static sites in Vue.js, without the hassle 项目地址: https://gitcode.com/gh_mirrors/sa/saber Saber是一个基于Vue.js和Webpack构建…

2026/7/12 21:29:45阅读更多 →
终极Zola SEO指南:如何用Schema.org结构化数据让搜索引擎爱上你的静态网站

终极Zola SEO指南:如何用Schema.org结构化数据让搜索引擎爱上你的静态网站

终极Zola SEO指南:如何用Schema.org结构化数据让搜索引擎爱上你的静态网站 【免费下载链接】zola A fast static site generator in a single binary with everything built-in. https://www.getzola.org 项目地址: https://gitcode.com/GitHub_Trending/zo/zola …

2026/7/12 21:29:45阅读更多 →
libhydrogen 安全最佳实践:避免常见加密误用的10个技巧

libhydrogen 安全最佳实践:避免常见加密误用的10个技巧

libhydrogen 安全最佳实践:避免常见加密误用的10个技巧 【免费下载链接】libhydrogen A lightweight, secure, easy-to-use crypto library suitable for constrained environments. 项目地址: https://gitcode.com/gh_mirrors/li/libhydrogen 在当今数字时代…

2026/7/12 21:29:45阅读更多 →
Synfig Studio终极指南:免费开源2D动画软件的完整入门教程

Synfig Studio终极指南:免费开源2D动画软件的完整入门教程

Synfig Studio终极指南:免费开源2D动画软件的完整入门教程 【免费下载链接】synfig This is the Official source code repository of Synfig Studio animation software 项目地址: https://gitcode.com/gh_mirrors/sy/synfig 想要创作专业级2D动画却受限于预…

2026/7/12 21:24:45阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/11 23:15:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/11 18:12:23阅读更多 →