3. ロギング

本編では、SIP Application Server が出力するSIPプロトコル処理のログについて説明します。
APのログや、domainの動作ログについては、WebOTXの「運用編」−「3.運用と操作」−「ロギング」を参照してください。


3.1. SIPのログ

SIP Application Serverでは動作時のログファイル(各コンポーネントの動作ログとアクセスログ)と通信トレースファイルを出力します。ログファイルと通信トレースファイルの
出力形式、出力場所、及びレベルの変更方法について説明します。


3.1.1. 出力形式

  • ログファイル(動作ログ)


  •         ログは以下のような形式で出力されます。
    日付 ログレベル ログ出力クラス名 - クラス名.メソッド名(ファイル名:行番号) [メッセージ] [スレッド名]
    

            出力イメージは以下のようになります。
    2007-06-04 18:47:58,546 DEBUG com.nec.webotx.sipstack.core.LogWriter
     - com.nec.webotx.sipstack.javax.sip.stack.SIPDialog.setLastResponse(SIPDialog.java:2314)
      [method = INVITE] [UDPMessageChannelThread]
    2007-06-04 18:47:58,546 DEBUG com.nec.webotx.sipstack.core.LogWriter
     - com.nec.webotx.sipstack.javax.sip.stack.SIPDialog.setLastResponse(SIPDialog.java:2315)
      [statusCode = 200] [UDPMessageChannelThread]
    2007-06-04 18:47:58,546 DEBUG com.nec.webotx.sipstack.core.LogWriter
     - com.nec.webotx.sipstack.javax.sip.stack.SIPDialog.setLastResponse(SIPDialog.java:2316)
      [transaction = com.nec.webotx.sipstack.javax.sip.stack.SIPClientTransaction@45d127e5]
      [UDPMessageChannelThread]
    
  • ログファイル(アクセスログ)


  •         アクセスログは以下のような形式で出力されます。
    リクエスト
        クライアントのホスト名 "-" 認証ユーザ名 日付 データの方向 メソッドの種別 リクエストURI プロトコル情報 Call-ID
    
    レスポンス
        クライアントのホスト名 "-" 認証ユーザ名 日付 データの方向 ステータスコード コンテント長 Call-ID
    
    ※認証ユーザ名: 認証ユーザがない場合は"-"
    ※Content-Length: 0の場合は"-"
    

            出力イメージは以下のようになります。
      xx.xx.xx.xx - - [0x/Dec/2008:00:00:00 +0900] "UP: INVITE sip:service@xx.xx.xx.xx:5060 SIP/2.0 1-4224@xx.xx.xx.xx" 
      xx.xx.xx.xx - - [0x/Dec/2008:00:00:00 +0900] "UP: CANCEL sip:service@xx.xx.xx.xx:5060 SIP/2.0 1-4224@xx.xx.xx.xx" 
      xx.xx.xx.xx - - [0x/Dec/2008:00:00:00 +0900] "DOWN: 200 - 1-4224@xx.xx.xx.xx" 
      xx.xx.xx.xx - - [0x/Dec/2008:00:00:00 +0900] "DOWN: 487 - 1-4224@xx.xx.xx.xx" 
    
  • トレースファイル


  •         トレースは以下のような形式で出力されます。
    日付 トレースレベル トレース出力クラス名 SIPメッセージに含まれているヘッダの値 [スレッド名]
    

            出力イメージは以下のようになります。
    <!--2007-06-04 18:47:58,437 DEBUG com.nec.webotx.sipstack.javax.sip.stack.ServerLog - --><message
    from="0.0.0.0:5060" 
    to="172.16.17.111:5060" 
    time="1180950478437"
    isSender="true" 
    transactionId="z9hg4bk49e0aa8362fa6c61d415b63877fea089" 
    callId="8e08c0ae-1695-4ddd-8201-fbe9e526db4b@" 
    firstLine="INVITE sip:sample@172.16.17.111:5060 SIP/2.0" 
    >
    <![CDATA[INVITE sip:sample@172.16.17.111:5060 SIP/2.0
    Call-ID: 8e08c0ae-1695-4ddd-8201-fbe9e526db4b@
    CSeq: 1 INVITE
    From: "SIMPLE-UAC" <sip:sample@172.16.17.222:5060>;tag=aaa85711-12dc-4457-931d-3975696abe9e-
    To: "SIMPLE-UAS" <sip:sample@172.16.17.111:5060>
    Max-Forwards: 20
    Content-Type: application/sdp
    Contact: "SIMPLE-UAC" 
    Via: SIP/2.0/UDP 0.0.0.0:5060;branch=z9hG4bK49e0aa8362fa6c61d415b63877fea089
    Content-Length: 328
    
    ]]>
    </message>
     <!--[Thread-40]-->
    

    3.1.2. 出力場所

    ログファイル及び通信トレースファイルは以下の場所に出力されます。

    ログファイル(動作ログ) <WebOTXインストールディレクトリ>\domains\<ドメイン名>\logs\sipstack\webotx_sipstack.log
    ログファイル(アクセスログ) <WebOTXインストールディレクトリ>\domains\<ドメイン名>\logs\server_access.log
    通信トレースファイル <WebOTXインストールディレクトリ>\domains\<ドメイン名>\logs\sipstack\webotx_sipstack.trc


    3.1.3. ログ/トレースレベル変更方法

    ログ/トレースの定義は<WebOTXインストールディレクトリ>\domains\<ドメイン名>\configにあるlog4otx.xmlで行っています。
    このlog4otx.xmlを編集することでログ/トレースレベルを変更することができます。

    ログファイル/トレースファイルに対応するロガー名と既定値でのレベルは以下のようになっています。

    ファイル名 ロガー名 レベル(既定値)
    webotx_sipstack.log com.nec.webotx.sipstack.core.LogWriter CONFIG
    webotx_sipstack.trc com.nec.webotx.sipstack.javax.sip.stack.ServerLog CONFIG
    アクセスログを出力するには以下の設定が必要です。 以下の作業はドメインを停止してから行ってください。
    a) modules.properties の Valve を有効にする
    <WebOTXインストールディレクトリ>\domains\<ドメイン名>\config\WebCont

    上記ディレクトリにある modules.properties を開き、以下の2行のコメントを外します。
     # valves (context level)
     #module.sip.contextvalve.Up=com.nec.webotx.sipcontainer.valves.SipAccessLogUpValve
     #module.sip.contextvalve.Down=com.nec.webotx.sipcontainer.valves.SipAccessLogDownValve
        ↓↓↓
     # valves (context level)
     module.sip.contextvalve.Up=com.nec.webotx.sipcontainer.valves.SipAccessLogUpValve
     module.sip.contextvalve.Down=com.nec.webotx.sipcontainer.valves.SipAccessLogDownValve
    

    b) log4otx.xml に logger を追加する
    <WebOTXインストールディレクトリ>\domains\<ドメイン名>\config

    上記ディレクトリにある log4otx.xml を開き、logger要素を追加します。この logger 要素の name 属性には、 ログを出力したいアプリケーション名を指定します。
    アプリケーション名とは、配備時に指定したアプリケーション固有の名前です。 指定しなかった場合は、例えば sip-samle.sar というアプリケーションであれば以下のような定義になります。

      <logger name="sip-sample">
        <level class="com.nec.webotx.logging.OTXLogLevel" value="CONFIG" />
        <appender-ref ref="ACCESSFILELOGSERVER" />
      </logger>
    
    注意) logger要素は、他の logger要素と同じ集まりで記述してく ださい。appender要素にまぜて定義するとエラーになります。

    log4otx.xmlを編集することでレベルだけでなくファイルサイズや出力フォーマットなども変更することができます。
    変更箇所などはWebOTXの「運用編」−「3.運用と操作」−「ロギング」を参照してください。


    3.1.4. トレース出力方法

    トレースを出力するためにはlog4otx.xmlで設定しているレベルを変更する必要があります。SIP Application Serverをインストールしただけの状態では出力されません。トレースファイル(webotx_sipstack.trc)に対応したロガーのレベルをDEBUG以上に設定することでトレースを出力することができます。
    レベルの変更方法は3.1.3. ログ/トレースレベル変更方法を参照してください。