2014年4月4日金曜日

release: libWRP-log // C++ logger header-only library

C++なヘッダーオンリーで使えるロガーライブラリーをGitHubで公開しました。

対応コンパイラーとして、
  • GCC-4.8
  • Clang-3.2
  • Emscripten-1.12
を確認しています。


ライブラリーのリポジトリーのexample/example.cxxをem++-1.12でビルドしてchrome-33で実行してみたところ。

このexampleではログをstd::cerrに出力しているのでem++-1.12でコンパイルするとconsole.logに出力されています。(もちろん、`nodejs example.js`で確認すればその環境のエラー出力にログがでます。)

std::cerrに限らず任意のstd::ostreamへ出力もできるので、std::coutにすればem++-1.12ではEmscriptenによる黒いコンソール出力(標準出力用)に出力もできます。


同じexampleをPC向けにclang++-3.2をコンパイラーとしてcmakeして実行するとこんな具合。ロギングやデストラクターに任意の関数オブジェクトをフックできるので、もし、PCではファイル、Emscriptenではエラー出力にログを吐かせるとかにしたければCPPでコンパイラー分岐したλ式を書いてフックに登録すれば簡単に使えたり、を想定しています。(いまのところEmscriptenで特にwritableなファイルシステムを柔軟に使うのはちょっと難しいですし。)

これまで個人的にはglogライブラリーをロガーとして使っていたのですが、PCだけでなくEmscriptenにも対応が簡単なヘッダーオンリーでさっくりコンパイルできて(em++重いデスシ…)扱いやすい柔軟なロガーが欲しいと思い、久しぶりにロガーを自分で書いてみました。

0 件のコメント:

コメントを投稿