安曇野の森から > ROS(Robot Operating System)を使う > ログ表示

ログ表示

ログの出力先

ROSには以下3つのログ出力先が用意されています。


ターミナルへのログ出力

ログはログ出力しているノードを起動したターミナルへ表示されます。また、ログはGUIツールのrqt_consoleを使っても読むことが出来ます。

ローンチファイルからノードを起動した場合、ディフォルトではログが表示されませんので注意が必要です。


/rosoutトピックへのログ出力

ログはターミナルへ表示されると共に/rosoutトピックにもメッセージタイプrosgraph_msgs/Logのメッセージとして発行されます。
ターミナルへ表示させる場合、そのターミナルで起動したノードのログのみが表示されますが、/rosoutトピックへは全てのノードのログが一緒に発行されます。


ファイルへのログ出力

ログはログファイルrosout.logへも出力されます。ログファイルの詳細は以下リンクを参照してください。

ログファイル


ログ表示レベル

ログ表示には以下の5つのレベルがあります。以下リストで下に行くほど重要度が高くなります。



ディフォルトのログ表示レベルはINFO以上(INFO, WARN, ERROR, FATALが表示される)です。 ログ表示レベルを変えるには以下のコマンドを使用します。



ノード名にはログ表示レベルを設定したいノードの名前をいれます。パッケージ名には、そのノードを所有しているパッケージの名前を入れます。
最後の「level」は設定したいレベルを文字列(「DEBUG」、「INFO」、「WARN」、「ERROR」、「FATAL」の内一つ)で指定します。

このコマンドはコマンドで指定するノードの起動後でないと使えませんので注意が必要です。


printfスタイルのログ表示マクロ

以下の5つのマクロはprintf()と同じように表示フォーマットを指定してログを表示します。
ただし、使える表示フォーマットはprintf()と完全に同じではなく制限があるようです。少なくとも改行(\n)は使えませんでした。



フォーマット文字列の形式はprintf()と同じです。


streamスタイルのログ表示マクロ

以下の5つのマクロは標準出力ストリームにログを表示します。



以降のROS_xxxx_STREAM()系ログ表示にはメッセージにC++のストリームファーマットが 使えます。
また、環境変数ROSCONSOLE_FORMATを設定することによってコンソールに出力される フォーマットを変更することが出来ます。


一回のみのログ表示マクロ

以下の5つのマクロは最初にマクロが呼ばれた時だけログを表示します。




インターバルごとのログ表示マクロ

以下の5つのマクロは最初にマクロが呼ばれた時点でログを表示し、次以降はマクロが 呼ばれた時点で指定されたインターバル時間を経過していたらログを表示します。



インターバルはdoubleで表された秒数です。優先度の高いプロセスが動いている時には、 設定されたインターバル以上の時間がかかる場合があります。


ログファイル

ログは以下のディレクトリにあるログファイルrosout.logへも出力されます。



上記ディレクトリ中の「ランID」はPCのMACアドレスと現在時間から自動生成されます。
現在の「ランID」は以下のコマンドで表示させることが出来ます。



ログファイル容量は以下のコマンドで表示させることが出来ます。



また、全てのログファイルを削除するには以下のコマンドが使えます。







inserted by FC2 system