4.5 KiB
4.5 KiB
第三方库来源说明(spdlog)
本目录按上游原样内置 spdlog 源码(include/ 头文件 + src/ 编译单元,保留上游字节,含换行符,不做编码/格式转换),与 third_party/ormpp、third_party/toml 同类处理:仓库自带依赖,离线可配置、可交付。
| 内容 | 本目录位置 | 上游 | 版本 / 标识 |
|---|---|---|---|
| spdlog(C++ 日志库) | include/spdlog/**(105 个文件 / 940,660 字节)、src/*.cpp(7 个文件 / 9,168 字节) |
https://github.com/gabime/spdlog | tag v1.17.0(commit 79524ddd08a4ec981b7fea76afd08ee05f83755d,2026-01-04);include/spdlog/version.h = 1.17.0 |
| 内置 {fmt}(随 spdlog 内置,供格式化使用) | include/spdlog/fmt/bundled/**(23 个文件) |
随 spdlog 内置;独立仓库 https://github.com/fmtlib/fmt | {fmt} 12.1.0(spdlog v1.17.0 的 bundled 版本;未启用 SPDLOG_FMT_EXTERNAL) |
| 许可证 | LICENSE |
— | MIT License(上游原文,1,323 字节) |
关键文件校验(与上游 v1.17.0 tarball 一致,可用下方复现步骤复核):
| 文件 | 字节数 | SHA-256 |
|---|---|---|
include/spdlog/version.h |
417 | a0c15d9295eba580732dada20940a443c53ddb47d8565c730d7af1ee5f3bd712 |
include/spdlog/spdlog.h |
11,866 | 54283b3e3bf96c3d…(前 16 位) |
include/spdlog/common.h |
12,569 | ddf4fa8ee4687f36…(前 16 位) |
include/spdlog/fmt/bundled/format-inl.h |
81,008 | e7baf108b84e89b29915bb35733540f8f4262cd8f4b41c15754eed4d2f185f61 |
LICENSE |
1,323 | d678c20826e13925…(前 16 位) |
说明:只保留使用所需的
include/与src/(上游tests/、bench/、example/、cmake/、scripts/、logos/、.github/等均不需要);include/+src/+LICENSE共 113 个文件 / 951,151 字节(上游 v1.17.0 源码 tarballspdlog-1.17.0.tar.gz= 281,801 字节)。
复现步骤(重新获取/升级时执行)
:: 在临时目录执行(本机全局 core.autocrlf=true 会把文本转成 CRLF,必须显式关闭)
git -c core.autocrlf=false clone --depth 1 --branch v1.17.0 https://github.com/gabime/spdlog.git <tmp-spdlog>
:: 仅拷贝以下内容到本目录(其余目录不需要):
:: <tmp-spdlog>\include\ -> third_party\spdlog\include\
:: <tmp-spdlog>\src\ -> third_party\spdlog\src\
:: <tmp-spdlog>\LICENSE -> third_party\spdlog\LICENSE
或直接使用官方 tag 源码包(推荐,字节与上述 tarball 一致):
:: https://codeload.github.com/gabime/spdlog/tar.gz/refs/tags/v1.17.0
:: 解压后同样只拷贝 include\、src\、LICENSE
校验方式:include/ 105 个文件 / 940,660 字节、src/ 7 个文件 / 9,168 字节,且 include/spdlog/version.h 的 SHA-256 为 a0c15d92…f3bd712;本目录所有文件保持 LF 换行(上游字节,不转 CRLF/BOM)。
使用方式与约束
- 仅由日志模块
data_process_class_dll/rdp_log.h(经rdp_log.cpp、各业务模块的RDP_LOG_*宏)使用。 - 以静态库方式编译:根目录
CMakeLists.txt定义目标spdlog(third_party/spdlog/src/*.cpp,SPDLOG_COMPILED_LIB),链接进data_process_class_dll;rdp_record静态库(C++20,rdp_record.cpp内也有日志)同样链接该目标。头文件包含路径与SPDLOG_COMPILED_LIB/SPDLOG_ACTIVE_LEVEL编译定义由该目标的 PUBLIC 接口传递给使用方。 - 编译期日志级别:spdlog 的
SPDLOG_ACTIVE_LEVEL由 CMake 选项RDP_LOG_LEVEL(AUTO/TRACE/DEBUG/INFO/WARN/ERROR/CRITICAL/OFF)映射,AUTO 时 Debug = TRACE、其余 = INFO;低于该级别的RDP_LOG_*调用在编译期被剔除(实参不求值)。配置方式见README.md4.3、10.4。 - 告警处理:第三方源码以目标级
/w编译,本项目源码包含其头文件处用#pragma warning(push, 0)/(pop)包裹(rdp_log.h),维持 README 4.5 的/W3零告警约定;这是本目录作为第三方依赖的唯一例外。 - 升级方式:整目录替换为新的上游快照,同步更新本文件的版本 / commit / 校验值,然后必须重新验证:4 个配置(Release/Debug × REC_OFF/REC_ON)构建通过(0 warning)+ 日志双写(标准输出 +
rdp_logs文件)、按日期+时间命名/同秒_1后缀、RDP_LOG_LEVEL编译期过滤等运行期行为(见 README 10.4)。