多様なデータソースのメトリクス、ログ、トレースをクエリ、可視化、アラート通知、探索できるオープンソースプラットフォーム。
odygrd/quill
フォーマットとI/Oをバックグラウンドスレッドに委ねる、超低レイテンシの非同期C++17ロギング・メトリクスライブラリ。
- スター
- 3,057
- フォーク
- 274
- 未解決の Issue
- 7
- 最終コミット
- 4 日前
これは何?
Quillは、レイテンシが重要なアプリケーションスレッドでフォーマットやI/Oを行わないC++17ロギングライブラリです。呼び出し元スレッドでは、ログ引数をスレッドごとのロックフリーキューにエンコードするだけで、専用のバックエンドワーカーが後からデコードし、{fmt}でフォーマットして設定済みの出力先に書き込みます。
テキストログに加え、Quillは事前登録されたメトリクスのサンプルを同じ非同期バックエンド経由で配信できます。同梱のPrometheus sinkはカウンター、ゲージ、ヒストグラム、サマリーを処理でき、カスタムsinkを使えばサンプルをStatsD、OpenTelemetryなどのコレクターに送れます。カラー付きコンソール出力、ローテーションファイル、JSON出力、sinkごとのフィルター、MDCコンテキスト、レート制限付きマクロ、バックトレースログにも対応しています。
Linux、macOS、Windows、BSDをサポートしています。vcpkg、Conan、Homebrew、Conda、Bzlmodなど複数のパッケージマネージャーでインストールできるほか、CMakeでソースを組み込むこともできます。最低レイテンシを実現するマクロAPIと、マクロを使わない関数APIの両方を提供します。
主な機能
- 01呼び出し元スレッドでログ引数をエンコードし、バックグラウンドワーカーでフォーマットします。
- 02同梱のPrometheus sinkとカスタムsinkを使って、事前登録済みのメトリクスを配信します。
- 03カラー付きコンソール出力、ローテーションファイル、JSONロギングに対応しています。
- 04sinkごとのフィルター、MDCコンテキスト、レート制限付きログマクロを利用できます。
- 05ブロッキングまたは破棄動作を選べる、サイズ上限付きまたは無制限のキューを設定できます。
- 06クラッシュシグナルハンドラーとAndroid向けロギングsinkを備えています。
ユースケース
- レイテンシが重要なC++のトレーディング、ロボティクス、リアルタイムシステムでのロギング。
- 高スループットのC++サービスへの非同期構造化ロギングの導入。
- C++プロセスからPrometheusへアプリケーションメトリクスをエクスポート。
- Linux、macOS、Windows、BSD、Androidを対象としたC++ロギング。
クイックスタート
- 1
vcpkg などのパッケージマネージャーで Quill をインストールします
vcpkg install quill - 2
Homebrew で Quill をインストールします
brew install quill - 3
Quickest Setup の例にあるように、C++ コードで simple_logger() を使うと、コンソールまたはファイルにログを出力できます
使う前に知っておきたいこと
- C++17 以降が必要です。
トピック
よくある質問
- quill とは?
- フォーマットとI/Oをバックグラウンドスレッドに委ねる、超低レイテンシの非同期C++17ロギング・メトリクスライブラリ。 Quillは、レイテンシが重要なアプリケーションスレッドでフォーマットやI/Oを行わないC++17ロギングライブラリです。呼び出し元スレッドでは、ログ引数をスレッドごとのロックフリーキューにエンコードするだけで、専用のバックエンドワーカーが後からデコードし、{fmt}でフォーマットして設定済みの出力先に書き込みます。
- quill は無料で使えますか?ライセンスは?
- quill は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- quill は今もメンテナンスされていますか?
- 活発にメンテナンス中。quill の最終コミットは 2026年10月17日 です。
- quill は何に使えますか?
- レイテンシが重要なC++のトレーディング、ロボティクス、リアルタイムシステムでのロギング。 高スループットのC++サービスへの非同期構造化ロギングの導入。 C++プロセスからPrometheusへアプリケーションメトリクスをエクスポート。 Linux、macOS、Windows、BSD、Androidを対象としたC++ロギング。
- quill のインストール方法は?
- vcpkg などのパッケージマネージャーで Quill をインストールします: vcpkg install quill Homebrew で Quill をインストールします: brew install quill Quickest Setup の例にあるように、C++ コードで simple_logger() を使うと、コンソールまたはファイルにログを出力できます
- quill はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/odygrd/quill
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Prometheusは、メトリクスを収集してルールを評価し、アラートを発報するオープンソースのシステム・サービス監視システムです。
ログ、メトリクス、トレース、アラート、ダッシュボードを一元管理できる、OpenTelemetryネイティブのオープンソース可観測性プラットフォーム。
Grafana Labsが開発する、ラベルのみをインデックス化してログ本文はインデックス化しない、水平スケーラブルなマルチテナント対応ログ集約システム。
分散型・クラウドネイティブなマイクロサービスアーキテクチャの監視、トレース、診断を行うAPMシステム。
Rust製のセルフホスト可能なオブザーバビリティプラットフォーム。ログ、メトリクス、トレース、RUM、LLM監視に対応し、DatadogやSplunkの代替として位置付けられています。