Boost.Log ロギング ライブラリの使用を開始することを検討しています。Boost.Log を使用している人はいますか? この点について、あなたの経験を共有してください。
私が検討している他のライブラリは、Apache log4cxx (インストールするのは面倒に思えますが、チームメイトは簡単に始められるものを望んでいます) と Pantheios (追加のフロントエンドとバックエンドで動作するため同じ問題です) です。
Boost.Log ロギング ライブラリの使用を開始することを検討しています。Boost.Log を使用している人はいますか? この点について、あなたの経験を共有してください。
私が検討している他のライブラリは、Apache log4cxx (インストールするのは面倒に思えますが、チームメイトは簡単に始められるものを望んでいます) と Pantheios (追加のフロントエンドとバックエンドで動作するため同じ問題です) です。
更新: これが書かれて以来、Boost.Log を独自のカスタム ログに置き換えました。これは主に、さまざまな理由ですべてのプロジェクトのすべての Boost 依存関係を取り除くことにしたためです。Boost の使用に問題がなければ、Klaim's answerから判断すると、Boost.Log は依然として有効な選択であると思います。
2010 年の Boost.Log での私の経験は次のとおりです。
Boost.Log をゲーム エンジンに統合することに成功しましたが、それについては良いことしか言えません。確かに、バージョン 2 が正式な Boost.Log となる実際のバージョンになるため、使用するには少し時期尚早です。
利用可能なバージョン「1.0」はメンテナンスされていないことに注意してください。更新を受け取るには、不安定になる可能性があるブリーディング エッジ (トランク) バージョンを使用する必要があります。重大なプロジェクトでこのバージョンを使用する場合は、これを考慮してください。最先端のバージョンや将来の破損を恐れていない場合は、それを選択してください。現状のままで使えて本当に良かったです。
私は長い間、log4j/log4cxx の階層ログ システムが優れていると考えていましたが、Boost.Log は別の考えにさせてくれました。フィルタリングと属性はより柔軟です。
フロントエンド/バックエンドで分離されたシンクの設計により、バックエンドを簡単に追加できます。フロントエンドによって処理される同期の問題やフィルタリングについて心配する必要はありません。このライブラリには、すでに多くのバックエンド、ローテーション ファイル、コンソール、syslog、Windows イベント レジスタなどが付属しています。
私は独自のシンク バックエンドを作成しました。1 つはゲーム内コンソールに、もう 1 つはより重大なイベントの一種の通知システムに送られます。思ったよりも簡単で、わずか数分で起動して実行できました。
最後になりましたが、メンテナー/開発者も非常に役に立ちます。プロジェクト フォーラムで多くの助けが得られます。彼は、私が報告した今週末に 2 つのバグ (うち 1 つの主要なバグ) を修正しました :-)
更新:私はBoost.Logをゲームエンジンシステムに使用していますが、非常に満足しています。高速でスレッドセーフであり、必要なときに非常に柔軟です。
Boost.Logは、今年(2013)の次のリリースですべてのBoostライブラリに提供される予定です。
Boost.Logは、その上にログシステムをセットアップするために作成されます。ドキュメントを読むと、柔軟性が非常に高いため、(離れた場所にあるコンピューターでのロギングのように)それを使用して構築できるロギングシステムを構築できることがわかります。
したがって、単純なプロジェクトで使いやすいマクロがありますが、これは、ロギングを本当に理解していて、アプリケーション用の特定のアーキテクチャを構築したい人に主に役立つ種類のライブラリだと思います。
パフォーマンスについては、提出時に他の(柔軟性の低い)ロギングライブラリと比較して遅くなる問題があったことを覚えていますが、ドラフトであり、最初のリリースはまだリリースされていないため、コーディングしていない場合は気にしませんタイムクリティカルなアプリケーション。
結局、「今」と評価するには「新しすぎる」と思います。これほど柔軟なロギングライブラリは他になく、多くの人がそれを使用する必要性を感じるかどうかはわかりません。
更新:Boost.Logの作成者との最近の電子メール交換の結果、tatBoost.Logが高速ロギングの優れた代替手段であることを示唆するデータが得られました。
私は最近、開始したプロジェクトにロギング システムを実装することを検討しました。
あなたが言及したようにlog4cxxを試しましたが、インストールするのは非常に面倒です。VS2012 で (他の依存関係ライブラリを使用して) コンパイルするのに数時間かかりましたが、プロジェクトで使用するとクラッシュしました。確かに、標準ライブラリの不一致でいくつかの奇妙なことが起こっていますが、それを理解することはできませんでした.
それで、ほんの数分で起動して実行できるlog4cppに切り替えました。エレガントで軽量で、まさに必要なものだと思います。よく知られている log4j & co と同じ機能を備えているという大きな利点があります。チームワークにとって本当にプラスになる可能性のあるシステムのログ記録(構成ファイルによる構成など)
パフォーマンスに関する限り、ロガーがメッセージのレベルでアクティブかどうかを確認するために 1 回の関数呼び出しが必要です。次に、実際にデータをログに記録するために 1 回の関数呼び出しが必要です。
いくつかの自家製マクロ ( LINE & co. をメッセージに追加するため) を使用すると、log4cpp は私のプロジェクトで非常に役立つことが証明されました。
残念ながら、私は Boost.Log を試していないので、それについて話すことはできませんが、Boost.Log の方法を選択しない場合でも、このフィードバックが役立つことを願っています。