[openrtm-users 01502] Re: OpenRTMのロガーについて

二宮恒樹 tnninomi @ fsi.co.jp
2010年 11月 16日 (火) 18:22:00 JST


安藤様

お世話になっております。富士ソフトの二宮です。
早々にお返事を頂き、ありがとうございます。

>> 1.ログ出力のシリアライズについて
>> doxygenを確認したところ、マルチスレッド書き込みに対してはシリアライズ
>> してバッファリングする対応をされているようですが、マルチプロセス(※)に
>> ついては何か対応をされていますでしょうか?
>> ※rtc.confのlogger.file_nameに複数のRTCで同じファイルを指定した場合。
>
> 複数プロセスからの書き込みに対しては特に対処をしていません。
> Loggerはstd::basic_ostreamを利用しており、複数プロセスからの
> 書き込みの場合その挙動に準じます。

了解いたしました。
現在扱っているRTCの数が多く、スレッド・プロセスに関わらずRTCのログを
1つにまとめて、処理順に出力されるようにならないものかと考えておりましたが、
複数プロセスについては、まずは挙動を確認してみることにします。

>> 2.ログ出力のオーバーヘッドについて
>> バッファリングしたログをファイルに吐き出すタイミングはどのような仕組みで
>> 行われているか、ご教授頂けますでしょうか?
>
> coutなどと同様にstd::endlやstd::flushを呼び出したときに書きだされるように
> なっていると思います。

了解いたしました。

>> 3.日付・時刻のフォーマット指定について
>> ソースを確認したところ、現在localtimeで時間を取得されているようで、
>> 「秒」までの対応となっておりますが、「ミリ秒」まで出力する仕組みは
>> 特にRTM内では用意されていないのでしょうか?
>
> これは、私も欲しいと思っていたのですが、現在のところまだ実装されていません。

了解いたしました。是非ご検討をお願いいたします。

なお、これについては、ローカルで対応してしまう可能性がございますので、
もし、実装されることになった場合、大まかで構いませんので、スケジュールを
お知らせいただければと思います。

>> なお、これについてはログにとどまらない話ですが、、、
>> RTC開発者側で「時間計測」についてのコードを入れたことにより、
>> そのRTCがOS依存になってしまうパターンと言うのが少なからず
>> 存在していますので、ミドルウェア層で吸収できる手段があれば
>> 展開いただければと思います。
>
> 時間計測については、coil::TimeMeasureを利用していただければと存じます。
> 詳細なドキュメントはないのですが、ヘッダとtest/TimeMeasure以下をご覧ください。

貴重な情報を頂き、ありがとうございます。早速試してみます。

以上、宜しくお願いいたします。

---------------------------------------------
二宮 恒樹(Tsuneki Ninomiya)
富士ソフト株式会社 ロボット事業推進部 R&D室
E-mail :tnninomi @ fsi.co.jp
Tel/Fax:03-3256-6353
(RTC再利用技術研究センター)
---------------------------------------------



openrtm-users メーリングリストの案内