閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

log4cxx を導入してみる

Log4J というツールがあります。ツールと言うか、ライブラリ。

アプリケーションのデバッグ時などに、コードにアプリの動作結果をログとして出力させて処理を追うなんて事は割と一般的な方法だと思いますが、その「ログを出力させる」部分をライブラリに追い出したもの。

面白いのはログの出力先がファイルだけではなく、ソケット通信などで送信することもできる点。これを使えば、受信する側(サーバ)も用意する必要がありますが、リアルタイムでアプリケーションの動作をチェックすることができそうで、ちょっとわくわくしますね。ということで、興味本位で Log4J を導入してみました。ちなみに、ファイル出力も単純なテキストファイルだけではなく、 XML や HTML での出力もできてしまうようです。

Log4JJava でできていますす。が、自分は C++ 使いなので、今回は Log4JC++ に移植したものである log4cxx を導入してみることにします。

なお環境は WindowsXP, VC++7.0(Visual Studio2002) です。 Windows 環境での導入方法がどこにも書いていなかったので、簡単にまとめておきます。以下手抜きのため箇条書き。

  1. log4cxx のページから log4cxx のソースをダウンロードする。
  2. 後々使うので、http://archive.apache.org/dist/logging/log4j/ から log4j のアーカイブもダウンロードする。logging-log4j-1.2.9.tar.gz(もしくはzip) 辺り。
  3. 適当なフォルダに解凍する(とりあえず log4cxx は 「log4cxx」フォルダに展開したものとして以下進めます)。
  4. log4cxx/msvc に、log4cxx.dsw があるので開く。 log4cxx.sln は VS2002 では開けない(色々やれば開けると思うけど面倒なのでやらない)ので。で、開くと「VS2002形式のプロジェクトにしますよー」というメッセージが出るので「はい」。
  5. 好きなビルドモードでビルド。すると、どこかのフォルダ(これはビルドモードに依る)に「NTEventLogAppender.dll」が無い、といったエラーが出るはずなので、先ほどダウンロードした log4j を展開したフォルダからこいつをコピーしてやります。 log4j/src/java/org/apache/log4j/nt/ にあります*1
  6. コピーしたらもう一度ビルド。今度は成功するはずなので、後はお好きなように。

まだ全然使えていないので、使用してみた感想などは後日、気が向いたらまた書きます。

参考リンク

[http
//logging.apache.org/log4cxx/manual/Introduction.html:title]:C++ 版のリファレンス。
[http
//www.nurs.or.jp/~sug/soft/log4j/index.htm:title]:log4j の解説。 log4cxx についても書かれています。

*1:なぜか http://logging.apache.org/site/binindex.cgi にある log4j-1.2.12 には NTEventLogAppender.dll が無いんですよね……自分でビルドしろってことかな?