
超详细!spdlog源码解析(上)
<p>学过C++后,写过和看过的C++代码还是比较有限,因此便想着学习一些开源项目。spdlog这个项目代码量不大,而且它所实现的功能理解起来也很容易,不需要太多的其他背景知识(毕竟是个日志库嘛),所以就选择了它。在学习这个项目期间,除了看源码外,也看了不少相关的博客,还有也尝试自己实现一个简单的日志库。最后实现了一大半,放弃了。毕竟跟着敲代码只是帮助更深刻理解源码...
<p>学过C++后,写过和看过的C++代码还是比较有限,因此便想着学习一些开源项目。spdlog这个项目代码量不大,而且它所实现的功能理解起来也很容易,不需要太多的其他背景知识(毕竟是个日志库嘛),所以就选择了它。在学习这个项目期间,除了看源码外,也看了不少相关的博客,还有也尝试自己实现一个简单的日志库。最后实现了一大半,放弃了。毕竟跟着敲代码只是帮助更深刻理解源码...
<p>接上一篇《<a href="/8326da2a.html">超详细!spdlog源码解析(上)</a>》,我们提到spdlog主要由logger(也包括async_logger)、sink、formatter、registry这四个部分组成。其中logger已经在<a href="/8326da2a....
<p>没看过前面内容的,先看了再来,从这里去跳转:</p> <ul> <li><a href="/8326da2a.html">超详细!spdlog源码解析(上)</a></li> <li><a href="/bec34dad.html"...
**spdlog是一个c++实现的日志库,代码中大量使用了c++11的特性,并且只需要头文件就可以使用,十分值得使用和研究。** 下面这段代码是spdlog中的一个工厂函数,用来创建一个新的logger,里面用到了c++11之后才支持的完美转发。 |-------------------------|-------------------------------------...
<p>在本文中,我们将讨论如何使用 Spdlog 日志库。Spdlog 是一个快速、异步、线程安全的 C++ 日志库,它可以方便地记录应用程序的运行状态,并提供了多种输出格式。</p> <h1>安装 {#安装}</h1> <p>Spdlog 可以通过源代码或包管理器进行安装。如果您使用的是 Linux ubuntu 系...
<h1>Spdlog 的结构 {#Spdlog-的结构}</h1> <p>Spdlog 由五个主要组件构成:Loggers、Sinks、Formatters、Async Logger 和 Registry。每个组件都扮演着不同的角色,共同协作记录并输出日志消息。</p> <ul> <li>Loggers :...
<p>上一篇文章介绍了<code>spdlog</code>的五个主要组件,其中最重要是<code>Logger</code>、<code>Sink</code>和<code>Formatter</code>其中,<code>Logger</code&g...
<p><code>Sink</code>负责将日志输出到不同的目标。<code>Spdlog</code>提供了多种<code>Sink</code>,包括<code>stdout_sink</code>(输出到控制台)、<code>basic_file_si...
<h1>Formatter {#Formatter}</h1> <p><code>Formatter</code>负责将日志格式化为字符串。<code>Spdlog</code>提供了多种<code>Formatter</code>,比如<code>patte...
<ol> <li>引言 {#1-引言}</li> </ol> <hr /> <h2>1.1 日志的重要性 {#1-1-日志的重要性}</h2> <p>日志在软件开发和维护中扮演着至关重要的角色。它不仅帮助开发者追踪程序运行状态,还能在出现问题时提供宝贵的调试信息。通过日志,我们能够了...