OSS探訪GitHubでログイン

header-only/compiled両対応でconsole・file・async sinkを扱える高速C++ logging library

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
29,652
主要言語
C++
ライセンス
MIT
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

spdlogはC++向けの高速logging libraryです。header-onlyでもcompiled libraryでも利用でき、console/file/syslog等のsink、async logging、runtime/compile-time level、fmtベースのformattingを一つのAPIで扱えます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

header-onlyとcompiled libraryの両方で導入する

READMEはinclude directoryだけを使うheader-only方式と、CMakeでlibraryをbuildするcompiled方式を案内しています。compiled版はcompile timeを短くしたいprojectで推奨されています。

出典:[1][3]

console・rotating/daily file・syslog等のsinkを選ぶ

color console、basic/rotating/daily file、syslog、Windows event log、Qt widgetなど複数の出力先があり、custom sinkも追加できます。

出典:[1]

async logging・level filtering・backtraceを組み合わせる

optional async mode、runtime/compile-time log level、environment/argvからのlevel設定、ring bufferへdebug messageを保持して必要時にdumpするbacktraceを提供します。

出典:[1]

向いている用途

C++ applicationのloggingを軽量なlibraryで統一したい場合に向く

server、desktop、embedded寄りのC++ codeで、formattingと複数sinkを同じlogging APIへ集約しつつheader-only/compiledの選択肢を持ちたいprojectに適します。

出典:[1]

導入前の確認

defaultはC++11、std::format利用時はC++20が必要

CMake設定では通常C++11を要求し、SPDLOG_USE_STD_FORMATを有効にする場合はC++20を要求します。toolchainのstandard設定とformat backendを合わせてください。

出典:[3]

v1.17.0はbundled fmt 12.1.0へ更新しtimezone formattingも修正

1.17.0はbundled {fmt}を12.1.0へ上げ、%z timezone offsetのWindows/FreeBSD/UTC挙動を修正しています。LICENSEはspdlogとfmtの双方がMITであることも明記しています。

出典:[2][4]

参考にした公式資料

  1. [1]spdlog v1.17.0 README(2026-10-04)
  2. [2]spdlog v1.17.0 release(2026-10-04)
  3. [3]spdlog v1.17.0 CMake configuration(2026-10-04)
  4. [4]spdlog MIT license(2026-10-04)
編集部からの補足

GitHub APIのlicense判定はNOASSERTIONですが、repositoryのLICENSEはspdlogをMIT Licenseと明記しています。bundled fmtもMITで、v1.17.0では12.1.0へ更新されています。

3ステップで試す

  1. 1

    spdlog v1.17.0を取得する

    確認済みstable releaseへ固定してsourceを取得します。

    git clone --depth 1 --branch v1.17.0 https://github.com/gabime/spdlog.git spdlog-1.17
  2. 2

    compiled libraryをCMakeでbuildする

    READMEが推奨するcompiled modeを最小構成でbuildします。

    cmake -S spdlog-1.17 -B spdlog-1.17/build -DSPDLOG_BUILD_EXAMPLE=OFF -DSPDLOG_BUILD_TESTS=OFF && cmake --build spdlog-1.17/build -j2
  3. 3

    header-onlyの最小logging sampleをcompileして実行する

    system installを行わず、include treeだけでC++11 sampleが動くことを確認します。

    printf '#include <spdlog/spdlog.h>\nint main(){ spdlog::info("spdlog {}", 17); }\n' > spdlog-demo.cpp && c++ -std=c++11 -Ispdlog-1.17/include spdlog-demo.cpp -pthread -o spdlog-demo && ./spdlog-demo
公式READMEで確認

成長

成長の推移 · 直近30日

29,652 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
12
Open PR
14

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • header-only
  • cpp11
  • cpp
  • logging
  • spdlog
Stars
29,652
Forks
5,385
Watchers
475
Open Issues
38
Contributors
399
所有者種別
User
主要言語
C++
ライセンス
MIT
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?