2011-07-14 5 views
26

私たちのプロジェクトでは現在log4cxxを使用していますが、それらのライブラリは何年​​にもわたっていません。 C++でロギングするライブラリを教えてください。 ライブラリはマルチスレッドログ、システムログをサポートする必要があります。 < <オペレータ経由でロギングをサポートしている場合は、それも良いでしょう。 libライセンスは、非常に民主主義的なものでなければなりません。例えば、boost、apacheなどです。 クロスプラットフォームサポート。 Linux、Windowsをサポートしている必要があります。 solaris、aix、hp-uxをサポートしている方が良いでしょうが、それは必要ではありません。C++用のより良いロギングライブラリ

+1

[easylogging ++](https://github.com/easylogging/easyloggingpp)をご覧ください。私の意見では、それはboost :: logよりも優れています。 – lepe

答えて

16

boost::logはおそらく私が見てきた最も多目的でよく書かれたロギングライブラリです。それはかなり複雑ですが、同時に本当に天才です。そして、それはあなたが考えることができるすべてを行い、その後はさらにいくつかを行います。

+0

あなたは知っています、なぜこのライブラリが今では増強されていないのですか?それは進行中の承認、またはそれに伴う重大な問題ですか? – Olympian

+0

私は実際には正確な理由を知らない。多分それは十分に成熟していないでしょうか?私はいくつかのプロジェクトのためにそれを使用しており、何の問題も全くありませんでした。 – stijn

+1

それは受け入れられましたが、それをブーストトランクに入れることにいくつかの問題がありました(phoenixバージョンIIRCと関係がある)。最近、これに関するブーストメーリングリストに関する議論がありました。 – Ralf

3

チェックアウトpantheios

+1

このライブラリはマルチロギングをサポートしていますか私はモジュールA、Bを持っています。私はAのためのログレベルのトレースを設定し、Bのためのちょうどエラーが欲しいですか?新しいロガーを作成して簡単に設定できますか?または、いつかはほとんどありません – Olympian

+2

パンテオは本当に素晴らしいですが、著者は少なくとも18ヶ月間ブドウ畑で死んでいるようですが、最新のコンパイラリリースを使用してビルドすることはできません:-( –

3

弊社ではlog4cplusを使用しており、log4jに基づく複雑な階層型ログシステムを提供しています。あなたが求めているものはすべてあるようです。 appenders(私は個人的にはこのファイルをlinux/windowsとlinux Syslogのローリングファイル用に選択しています)を提供しています。

ライブラリは非常にコンパイルして、Linuxの&の両方のウィンドウに配備するのが簡単です。これまでのところ問題なく動作しています(約4年間の生産中)。

唯一の欠点、ドキュメントの欠如が、コードは非常に自明です。良いことは、どのようにコンフィギュレータ/パターン/ etcが動作するかを理解するためにlog4jのドキュメントページに行くことができることです...

12

私はglogライブラリを使用しています(私はBoost.Logを簡単にインストールできなかったので)。それは使いやすく強力です。

+0

はい、私は見る( – Olympian

+0

)Thanx! –

+2

glogにはいくつかの欠点があります: - これはコマンドラインのフラグから構成されているので、gflagsで最もうまくいきます); - これはmainから初期化されると予想されますので、動的にロードされるライブラリ(それぞれのlibが自分のglogであるところ)で使用されるとは予想されません; - ログの既定のファイルパスは何ですか? これは高品質で、十分にテストされ、巨大な生産システムで使用されています。 –