私たちのプロジェクトでは現在log4cxxを使用していますが、それらのライブラリは何年にもわたっていません。 C++でロギングするライブラリを教えてください。 ライブラリはマルチスレッドログ、システムログをサポートする必要があります。 < <オペレータ経由でロギングをサポートしている場合は、それも良いでしょう。 libライセンスは、非常に民主主義的なものでなければなりません。例えば、boost、apacheなどです。 クロスプラットフォームサポート。 Linux、Windowsをサポートしている必要があります。 solaris、aix、hp-uxをサポートしている方が良いでしょうが、それは必要ではありません。C++用のより良いロギングライブラリ
答えて
boost::logはおそらく私が見てきた最も多目的でよく書かれたロギングライブラリです。それはかなり複雑ですが、同時に本当に天才です。そして、それはあなたが考えることができるすべてを行い、その後はさらにいくつかを行います。
弊社ではlog4cplusを使用しており、log4jに基づく複雑な階層型ログシステムを提供しています。あなたが求めているものはすべてあるようです。 appenders
(私は個人的にはこのファイルをlinux/windowsとlinux Syslogのローリングファイル用に選択しています)を提供しています。
ライブラリは非常にコンパイルして、Linuxの&の両方のウィンドウに配備するのが簡単です。これまでのところ問題なく動作しています(約4年間の生産中)。
唯一の欠点、ドキュメントの欠如が、コードは非常に自明です。良いことは、どのようにコンフィギュレータ/パターン/ etcが動作するかを理解するためにlog4jのドキュメントページに行くことができることです...
私はglogライブラリを使用しています(私はBoost.Logを簡単にインストールできなかったので)。それは使いやすく強力です。
はい、私は見る( – Olympian
)Thanx! –
glogにはいくつかの欠点があります: - これはコマンドラインのフラグから構成されているので、gflagsで最もうまくいきます); - これはmainから初期化されると予想されますので、動的にロードされるライブラリ(それぞれのlibが自分のglogであるところ)で使用されるとは予想されません; - ログの既定のファイルパスは何ですか? これは高品質で、十分にテストされ、巨大な生産システムで使用されています。 –
[easylogging ++](https://github.com/easylogging/easyloggingpp)をご覧ください。私の意見では、それはboost :: logよりも優れています。 – lepe