2.5.1 メッセージログをアプリケーションプログラムから出力
UAPからdc_logprint関数【CBLDCLOG('PRINT ')】を呼び出すと,ユーザ任意の情報をOpenTP1からのメッセージログとして出力できます。メッセージログはメッセージログファイルに出力されます。メッセージログファイルに出力された内容を表示するときは,logcatコマンドを実行して,標準出力に出力します。
メッセージログファイルへの出力と同時に,標準出力にリアルタイムに出力させることもできます。標準出力にリアルタイムで出力するかどうかは,ログサービス定義で指定します。
UAPからのメッセージログ出力の概要を次の図に示します。
|
(1) メッセージログとして出力する内容
メッセージログファイルに出力するメッセージログの情報の内容を次の表に示します。UAPから指定する項目は,要求元プログラムID,メッセージID,メッセージログテキストです。メッセージログファイルには次の表で示す情報とOpenTP1の制御コードが出力されます。
番号 |
項目 |
出力される長さ |
内容 |
|
---|---|---|---|---|
− |
行ヘッダ |
メッセージログ通番 |
半角文字7けた |
メッセージログ全体の通番です。障害が起こってメッセージログが抜けた場合は,このメッセージログ通番に抜けがあることでわかります。 |
プロセスID |
半角数字10けた または,半角数字5けた (ログサービス定義の環境変数DCLOGDEFPIDに1を指定した場合は,半角数字5けた) |
メッセージログ出力を指定したプロセスのIDを示します。 |
||
プロセス単位のメッセージログ通番 |
半角数字7けた |
出力を要求したプロセス単位の,メッセージログの通番です。 |
||
1. |
OpenTP1識別子 |
半角英数字2けた |
OpenTP1システムごとの識別子です。 |
|
2. |
日時 |
整数19けた |
メッセージログの出力を要求した時間です。 「年/月/日 時:分:秒」の形式で出力されます。 |
|
3. |
要求元ノード名 |
半角英数字8けた |
メッセージログの出力を要求したUAPがあるノードの名称です。 ノード名の先頭8文字が出力されます。 |
|
4. |
要求元プログラムID |
半角英数字3けた |
最初の1文字は「*」で固定として,あとの2文字はUAPで指定した要求元プログラムIDが設定されます。 |
|
5. |
メッセージID |
半角英数字11けた |
メッセージログ出力を要求したときに,UAPでメッセージログごとに付ける識別子です。メッセージIDの形式は次のとおりです。 KFCAn1n2n3n4n5-x
|
|
6. |
メッセージログテキスト |
可変長 最大222バイト (Linux版だけ最大444バイト) |
UAPが指定した任意の文字列です。 |
(2) メッセージログの出力形式
UAPからdc_logprint関数で出力要求したメッセージログを,logcatコマンドで標準出力に表示する形式を次の図に示します。次の図はオプションを省略して入力した例です。logcatコマンドについては,マニュアル「OpenTP1 運用と操作」を参照してください。図中の番号は表2-2と対応しています。
|
(3) NETMにメッセージを渡すときの注意
UAPから出力するメッセージログも,OpenTP1のメッセージログと同様に,統合ネットワーク管理システム(NETM)の操作支援端末に出力できます。NETMに出力するメッセージログの内容は次のとおりです。
-
行ヘッダの中の項目(ログサービス定義に指定)
-
メッセージID
-
メッセージテキスト
さらに,操作支援端末に出力するメッセージログの表示色を,UAPで設定できます。
UAPから出力するメッセージログをNETMに出力するときは,次のことに気を付けてください。
-
NETMに出力するメッセージログは,160バイト以下になるようにしてください。160バイトを超えると,NETMでメッセージを分割してVOS3に引き渡すので,一つのメッセージの行間に別のメッセージが混ざって出力される場合があります。また,メッセージログの長さが256バイトを超えると,OpenTP1のログサービスで256バイトを超える部分が切り捨てられます。
-
NETMに出力するメッセージテキストの中には,復改文字「\n」を入れないようにしてください。「\n」がある場合,NETMでメッセージを「\n」で分割してVOS3に引き渡すので,一つのメッセージの行間に別のメッセージが混ざって出力される場合があります。
NETM:Integrated Network Management System