操作
バグ #3211
完了ログ rtcbuilder.log の生成場所の問題
開始日:
2015/06/08
期日:
進捗率:
100%
予定工数:
説明
ログ rtcbuilder.log の生成場所が、カレントディレクトリとなっているため、書き込み権限がないとロックが取得できずエラーになりパースぺーくティブが開けない。
n-ando さんがほぼ10年前に更新
- 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のログのロックでエラーが出る。
n-ando さんがほぼ10年前に更新
- 進捗率 を 0 から 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 に記載しても同じ効果が得られる。
ga さんが約9年前に更新
- ステータス を 新規 から 解決 に変更
- 担当者 を ga にセット
- 進捗率 を 30 から 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()でスタックトレースを表示している箇所をロガーに置き換え
操作