操作
バグ #634
完了OpenRTM-aist-1.0.0-RC1にてlog_levelを設定しないとログが出力されない問題
ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2009/05/27
期日:
進捗率:
100%
予定工数:
説明
OpenRTM-aist-1.0.0-RC1にて、RTコンポーネントのログを出力したい場合、
rtc.confのlogger.log_levelを設定する必要がある。
logger.log_levelを設定していない場合、空のログファイルが作成される。
kurihara さんが15年以上前に更新
- ステータス を 新規 から フィードバック に変更
7/27現在での最新バージョン(リビジョン1476)では、下記の現象が起きている。
(下記はrtc.confにて、logger.enable: yes と指定済みである。)
- logger.log_levelをPARANOID以外に設定した場合、空のログファイルが作成される。(PARANOIDを設定した場合はログがログファイルに書き出されている。)
- logger.log_levelを設定せずに、logger.file_name: rtc.log, stdoutのように標準出力にもログ出力を行うように設定した場合、ログレベルがPARANOID以下のログが標準出力にだけ出力される。このときも、rtc.logファイルは作成されるが空である。
匿名ユーザー さんが15年以上前に更新
- 原因
coil::LogStreamBuffer::sync() でバッファの内容を flush していないため発生していた。
呼び出し側で coil::LogStreamBuffer::addStreram に追加した Stream を close した場合は、ファイルにログが残るが、close が行われなずに終了した場合、ファイルが空になる。 - 対策
coil::LogStreamBuffer::sync() から呼び出される stream_sputn() で pubsync() の呼び出しを追加。(pubsync() はデバイスにバッファの内容を書き込む。) - 確認
coilのunitテストでログがファイルに出力されることを確認。(posix版,win32版の両方で確認。)
examples の ConsileOutComp で rtc.conf の logger.log_level を DEBUG,INFO にして実行し、ファイルのログが出力されていることを確認。(posix版,win32版の両方で確認。)
操作