Actions
バグ #3211
closedログ rtcbuilder.log の生成場所の問題
Start date:
06/08/2015
Due date:
% Done:
100%
Estimated time:
Description
ログ rtcbuilder.log の生成場所が、カレントディレクトリとなっているため、書き込み権限がないとロックが取得できずエラーになりパースぺーくティブが開けない。
Updated by n-ando over 9 years ago
- Linuxのシステム上(/usr/lib/x86_64_linux_gnu/openrtm-1.1/openrtp)にrtmtoolsをインストール。
- eclipse実行時に、cd /usr/lib/x86_64_linux_gnu/openrtm-1.1/してから実行しないと不具合有(rtsystemeditorのログのバグ)
- cd /usr/lib/x86_64_linux_gnu/openrtm-1.1/ して一般ユーザから実行しようとするとこのディレクトリに書き込み権限がないためパースペクティブを開けずにエラー
$ ./eclipse java.io.IOException: Couldn't get lock for rtcbuilder%u.log at java.util.logging.FileHandler.openFiles(FileHandler.java:389) at java.util.logging.FileHandler.<init>(FileHandler.java:287) :
- 逆に、カレントディレクトリを変更せずにeclipseを実行するとRTsystemEditorのログのロックでエラーが出る。
Updated by n-ando over 9 years ago
- % Done changed from 0 to 30
対処方法として、
- logger.properties に下記のようにログファイルパターンを記載し
jp.go.aist.rtm.rtcbuilder.RTCBLogHandler.pattern=%h/.rtcb%u.log jp.go.aist.rtm.systemeditor.RTSELogHandler.pattern=%h/.rtse%u.log
- 起動時のオプションでこのファイルをロガークラスのコンフィギュレーションとして読み込ませることで回避可能
$ eclipse -vmargs -Djava.util.logging.config.file=/usr/lib/x86_64-linux-gnu/openrtm-1.1/openrtp/logger.properties
- vmargs 以下を eclipse.ini に記載しても同じ効果が得られる。
Updated by ga almost 9 years ago
- Status changed from 新規 to 解決
- Assignee set to ga
- % Done changed from 30 to 100
r550にて修正
・java.util.loggingによるロギングの仕組みは廃止
・slf4j+logback方式を採用
→jp.go.aist.rtm.toolscommon.profile 以下にJAR含め、初期化用のユーティリティクラス(LoggingUtil)を追加・公開
・RTSE/RTCB起動時に、以下のフローで初期設定を行います。
- eclipse フォルダ直下に設定ファイル(logback.xml)が存在するか確認
- 設定ファイルが存在しない場合は、デフォルトのファイルを生成
→以後はこのファイルを更新すればOK
- eclipse/logback.xmlを読み込んで初期設定
→標準出力とファイルへ出力します。出力ファイルは ${HOME}/openrtp.log
・e.printStackTrace()でスタックトレースを表示している箇所をロガーに置き換え
Actions