その他

ログの出力

OpenRTM.NETは、log4netを利用したログ出力の機能を備えています。 ログ出力を行うには、まずログ出力オブジェクトを取得します。 引数でログを出力するクラスの情報を指定することにより、クラス名がログに出力されることになります。

ログ出力オブジェクトの取得

private readonly ILogger logger = LoggerFactory.GetLogger();

取得したオブジェクトを利用して、ログを出力することができます。

ログの出力方法

logger.Error("エラーが発生しました。");

ログの出力方法(例外情報を含む)

catch (Exception ex)
{
  logger.Fatal("致命的なエラーが発生しました。", ex);
  throw;
}

ログの出力方式(パラメータあり)

logger.DebugFormat("確認したい値x={0}", x);

ログの出力レベルには、ErrorやFatal以外にも以下に示すものがあります。

ログのレベル
ログレベル 説明
Debug デバッグ用の情報を出力するために利用します。
Info 通知したい情報を出力するために利用します。
Warn 警告情報を出力するために利用します。
Error エラー情報を出力するために利用します。
Fatal 致命的なエラー情報を出力するために利用します。

ログ出力方式の設定はlog4net.configというファイルで行っています。 詳細については、log4netの参考情報などを参照してください。

設定ファイル(rtc.config)

RTコンポーネントの各種設定は、rtc.configというXMLファイルに記述することができます。 デフォルトで使用されるrtc.configの記述を以下に示します。

RTコンポーネント設定ファイルの設定例

<?xml version="1.0" encoding="utf-8" ?>
<RtcSettings>
  <Setting Name="protocol.type">CORBA</Setting>
  <Setting Name="protocol.CORBA.naming">localhost:2809</Setting>
  <Setting Name="naming.formats">%h.host_cxt/%n.rtc</Setting>
  <Setting Name="exec.type">PeriodicExecutionContext</Setting>
  <Setting Name="exec.rate">1</Setting>
  <Setting Name="Examples.HelloWorld.config_file">helloworld.conf</Setting>
</RtcSettings>

設定可能なパラメータは、以下のようになります。

rtc.configに設定可能な項目
パラメータ名 説明 設定例
protocol.type コンポーネントが利用する通信プロトコルを指定します。
  • CORBA
  • WCF
  • Local
protocol.CORBA.naming 通信プロトコルにCORBAを選択した場合、ネーミングサービスのアドレスを指定します。
  • localhost:2809
  • sample.com:5050
  • localhost
protocol.WCF.naming SOAP版のネーミングサービスのアドレスを指定します。 http://localhost:8000/OpenRTM.NET/NamingService
protocol.WCF.base_address SOAPでコンポーネントをホストする際のベースとなるアドレスを指定します。 http://localhost:8000/OpenRTM.NET
naming.formats

ネーミングサービスに登録される名前を指定します。%から始まる下記の文字は、ネーミングサービス登録時に自動的に置換されます。

  • %n: インスタンス名
  • %t: コンポーネント名
  • %m: モジュール名
  • %v: バージョン
  • %V: ベンダー名
  • %c: カテゴリ名
  • %h: ホスト名
  • %M: マネージャ名
  • %p: プロセスID
%h.host_cxt/%n.rtc
exec.type 利用する実行コンテキストのタイプを指定します。指定しなかった場合は、Component属性で指定した実行コンテキストが利用されます。
  • PeriodicExecutionContext
  • ExtTrigerExecutionContext
exec.rate 実行コンテキストの動作周期[Hz]を指定します。
  • 1
  • 1000
カテゴリ名.コンポーネント名.config_file コンポーネントごとのコンフィギュレーションファイルの名前を指定します。 helloworld.conf