プロジェクト

全般

プロフィール

バグ #3211

ログ rtcbuilder.log の生成場所の問題

n-andoほぼ9年前に追加. 約7年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2015/06/08
期日:
進捗率:

100%

予定工数:

説明

ログ rtcbuilder.log の生成場所が、カレントディレクトリとなっているため、書き込み権限がないとロックが取得できずエラーになりパースぺーくティブが開けない。

履歴

#1 n-andoほぼ9年前に更新

  • 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のログのロックでエラーが出る。

#2 n-andoほぼ9年前に更新

  • 進捗率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 に記載しても同じ効果が得られる。

#3 ga約8年前に更新

  • ステータス新規 から 解決 に変更
  • 担当者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()でスタックトレースを表示している箇所をロガーに置き換え

#4 n-ando約7年前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF