2011-02-01 14 views
8

ロギングライブラリを使用するには2週間ほどかかりました。私はLog4cxx、Log4cpp、log4cplus、boost.logを試しました。問題は、これらのどれも私のために働かないということではありません。私は、彼らをまったく働かせる方法を理解できません。私は実際にlog4j/logbackを使って作業しているので、log4cxxを使用したいと思いますが、log4jをベースにしたライブラリをビルドすることはできませんでした。私はブーストライブラリを構築して使用することができましたが、boost.logは何を試しても、あらゆる種類のリンカエラーを表示します。もし誰かが私をこれらの図書館の一つを稼働させるためのステップバイステップガイドに導くことができたら、私はそれを高く評価します。また、私はIDEとしてEclipseを使用しています。C++ロギングライブラリの設定

+1

使用しているオペレーティングシステムは何ですか?また、最初にライブラリをコンパイルしてから、プロジェクトにインクルードするヘッダーファイルを用意してください(実装はライブラリ**にコンパイルされるため、巨大なライブラリを何度も再コンパイルする必要はありません) – RageD

+0

私はWindows 7を使用しています。コンパイルとヘッダーファイルの取得についてはどういう意味なのでしょうか。申し訳ありませんが、私はサードパーティのライブラリを使用するのが初めてです。私は必要なファイルごとにincludeディレクティブを使用してください。 – Shenlong55

答えて

0

をお勧めします。 make build testと入力して昼食を取ると、リンク時に出力ストリーム(Pantheiosは「バックエンド」と呼ばれます)を選択する必要がありますが、コーディングのためには非常に簡単です。

std::string name; 
int age; 

pantheios::log_DEBUG("name=", name, " age=", pantheios::integer(age)); 

それは、スピードのためのゼロから設計されています - 「DEBUG」レベルがオンされていない限り、年齢を文字列に変換されません - と堅牢 - なぜあなたはできないです基本型を直接渡し、 "inserters"を使用します(例えば、pantheios::integer)。詳細については、Pantheiosの著者によるthis recent blog postを参照してください。

1

これはこれまでに実現しましたか? Log4cxxはWin7でも間違いなく動作します。ビルドエラーのいくつかを投稿する可能性があります。ちょうど推測、おそらくあなたはlog4cxx静的なlibとリンクするためにあなたのEclipseプロジェクトを設定していない。

1

Boost.Logはとてもうまく動作します(LinuxとWindows)。ヘッダーのみのライブラリではなく、リンクする必要があるコンパイル済みの部分があります。指示hereを参照してください。

また、他の、非ヘッダに依存して、ライブラリをブースト:

のロギングライブラリがあまりにも 建物を必要とする他のいくつかのBoostライブラリを使用しています。これらはBoost.Filesystem、Boost.System、 Boost.DateTime、Boost.ThreadおよびBoost.Regexです。ビルド手順の詳細については、 のドキュメントを参照してください。

プラットフォームによっては、Boostライブラリがあらかじめ構築されていることがあります。あなたが指示に従うならば、あなた自身がそれを構築するのは簡単です。あなたが立ち往生した場合、正確にあなたが立ち往生した場所とあなたが見ているところであなたの質問を更新してください。

0

私はlog4cxxを動作させることができましたが、これはWindows 7 OSで動作するVisual Studio 2013で行われました。

これ以下は、私が何をしたかのステップバイステップです:log4cxxのZIPパッケージは、その内容、http://logging.apache.org/log4cxx/download.html

ダウンロード4月と4月-utilののZIPパッケージ、http://apr.apache.org/download.cgi

を抽出ダウンロード

  1. このzip apr-1.2.11-win32-srcを手動で抽出します。ジップ(それは に名前を変更し、手動でない場合 展開したフォルダは、「4月」という名前する必要があります)
  2. 手動( 抽出されたフォルダは名前を付ける必要があり、このジップapr-util-1.2.10-win32-src.zipを抽出'4月-utilの'、それは手動でない場合 は、名前を変更)
  3. コマンドプロンプトを開き、次のコマンドを実行します。cd のapache-log4cxx-0.10.0を設定します(この がconfigure.batを実行します)

APR ICONVおよびLDAPサポートの使用を無効にする必要があります。 これを行うために、以下のファイルを手動で追加します:

  1. apr-util \ include \ apu.hwを開きます。 "#define APU_HAVE_APR_ICONV"で始まる行を探します。値を0に変更して保存します。
  2. apr-util \ include \ apr_ldap.hwを開きます。 で始まる行を探します。 "#define APR_HAS_LDAP"値を0に変更して保存します。

* .dsw を* .cxprojに変換するにはlog4cxx.dllをビルドする必要があります。

  1. Visual Studio 2013を起動してlog4cxx.dswを開きます。
  2. VSはすべてを変換したいかどうかを尋ねます。単に[はい]をクリックします。 移行レポートにはいくつかの警告が表示されることがありますが、解決策が開かないようにするには、 が何も警告しません。

> xml、apr、およびapr-utilプロジェクトは正常にビルドする必要があります。

log4cxxプロジェクトをコンパイルしようとすると、ほとんど が何百ものエラーで失敗する可能性があります。これは回避できるVC++ のバグが原因です。

  1. 移動外(上)すべてのマクロそれらがあるクラスは LOG4CXX_LIST_DEFマクロは、クラスを定義するために使用されます。エラーC2252で報告されたすべてのマクロは、どのクラスからも移動する必要があります。この には、マクロ内で使用される移動定義も含まれる場合があります。
  2. 次に、これに続いて

>、log4cxxプロジェクトは現在、あなたのマシン上で正常に をコンパイルする必要があります(これはもはや親クラスにネストされている)すべてのLoggingEventな::キーセットにキーセットを変更しません。