8

ロギングライブラリを操作するために、約2週間試みてきました。Log4cxx、Log4cpp、log4cplus、boost.log を試しました。問題は、これらのどれも私にとってうまくいかないことではなく、それらを機能させる方法がまったくわからないことです。仕事でlog4j/logbackを使用しているため、log4cxxを使用したいと思っていますが、log4jに基づいてビルドするライブラリを取得できませんでした。ブースト ライブラリをビルドして使用することはできましたが、boost.log には、何を試してもあらゆる種類のリンカー エラーが表示されます。これらのライブラリの 1 つを機能させるためのステップバイステップ ガイドを誰かが教えてくれたら、とてもありがたいです。また、それが重要な場合は、Eclipse を IDE として使用しています。

4

4 に答える 4

1

これを機能させたことがありますか?Log4cxx は確実に Win7 で動作します。たぶん、ビルドエラーのいくつかを投稿できます。おそらく、log4cxx 静的ライブラリとリンクするように Eclipse プロジェクトを構成していない可能性があります。

于 2011-10-08T20:42:39.640 に答える
1

Boost.Log は非常にうまく機能します (Linux と Windows)。これはヘッダーのみのライブラリではなく、リンクする必要があるコンパイル済みの部分があります。こちらの手順を参照してください。

また、他のヘッダー以外の Boost ライブラリにも依存します。

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

プラットフォームによっては、Boost ライブラリのビルド済みバージョンが存在する場合があります。それ以外の場合は、指示に従えば簡単に自分で作成できます。行き詰まった場合は、行き詰まった正確な場所と見ているもので質問を更新してください。

于 2011-10-08T20:51:42.443 に答える
0

パンティオスをお勧めします。最初のダウンロード時にすべてをビルドするのに時間がかかります-入力make build testして昼食に行きます-リンク時に出力ストリーム(Pantheiosは「バックエンド」と呼んでいます)を選択する必要がありますが、コーディングについては非常に簡単です。

std::string name;
int age;

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

これは速度のためにゼロから設計されています-「DEBUG」レベルがオンに切り替えられない限り、年齢は文字列に変換されません-そして堅牢性-基本的な型を直接渡すことができず、「挿入子」を使用できない理由です(例pantheios::integer)。詳細については、Pantheios の作成者によるこの最近のブログ投稿を参照してください。

于 2011-02-01T03:51:31.373 に答える
0

log4cxx を動作させることができました。これは、Windows 7 OS で実行されている Visual Studios 2013 で行われました。

これは私がやったことです。

log4cxx ZIP パッケージをダウンロードして、その内容を抽出します ( http://logging.apache.org/log4cxx/download.html )。

apr および apr-util ZIP パッケージをダウンロードします ( http://apr.apache.org/download.cgi )。

それで

  1. この zip apr-1.2.11-win32-src.zip を手動で抽出します (抽出したフォルダーの名前を「apr」にする必要があります。手動で名前を変更しない場合)。
  2. この zip apr-util-1.2.10-win32-src.zip を手動で抽出します (抽出されたフォルダーは、手動で名前を変更しない場合は「apr-util」という名前にする必要があります)。
  3. コマンド プロンプトを開き、次を実行します。 cd apache-log4cxx-0.10.0 configure (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. 次に、すべての LoggingEvent::KeySet を KeySet に変更します (これは親クラスにネストされなくなりました)。

> これに続いて、log4cxx プロジェクトがマシン上で正常にコンパイルされるはずです。

于 2016-04-20T08:14:08.727 に答える