org.eclipse.core.runtime.IStatus から CommonBaseEvent フォーマットへのマッピング

IBM(R) 共通ロギング・プラグイン・コンポーネントへのロギングでは、 既存の ILog インターフェースと、既存の RAD LoggingUtil インスツルメンテーションがサポートされます。 既存フォーマットのレコードを共通ベース・イベント・フォーマットにマップするための ハンドラーが用意されています。 共通ベース・イベント・ログ・レコードは、eclipse\workspace\.metadata ディレクトリーの 共通ロギング・ログ・ファイル (CommonBaseEvents.xml) に記録されます。

次の表は、IStatus フォーマットから CommonBaseEvent フォーマットへのマッピングを示しています。

IStatus プロパティー CommonBaseEvent プロパティー
Code ExtendedDataElement.Name = "Code"
ExtendedDataElements.Type = "integer"
ExtendedDataElement.Values[0] = <Code>
Exception ExtendedDataElement.Name = "Throwable"
ExtendedDataElement.Type = "stringArray"
ExtendedDataElement.Values[0] = <Throwable's class name>[: <Throwable's localized message>]
ExtendedDataElement.Values[1...n] = <Throwable's stackTraceElement[0...(n - 1)]>
[ExtendedDataElement.Children[0] = <Throwable's cause>]

ここで、

ExtendedDataElement.Children[0].Name = "Cause"
ExtendedDataElement.Children[0].Type = "stringArray"
ExtendedDataElement.Children[0].Values[0] = <cause's class name>[: <cause's localized message>
ExtendedDataElement.Children[0].Values[1...n] = <cause's stackTraceElement[0...(n - 1)]>
[ExtendedDataElement.Children[0].Children[0] = <cause's cause>]
Message Msg
Plugin SourceComponentId.Application = "Common Logging"
SourceComponentId.Location = <local host's IPv4 IP address> または "127.0.0.1"
SourceComponentId.LocationType = "IPV4"
SourceComponentId.Component = <Plugin>
SourceComponentId.SubComponent = "Log"
SourceComponentId.ComponentIDType = "Application"
SourceComponentId.ComponetType = "Eclipse Plugins"
Severity Severity = <Severity> (マッピング表を参照)
Children[0...n] ExtendedDataElement[0...n].Name = <Children<n>.Plugin>
ExtendedDataElements[0...n].Type = "string"
ExtendedDataElement[0...n].Children[0...m] = <Children<n>.Code>
ExtendedDataElement[0...n].Children[0...m] = <Children<n>.Exception>
ExtendedDataElement[0...n].Children[0...m] = <Children<n>.Message>
ExtendedDataElement[0...n].Children[0...m] = <Children<n>.Severity>
ExtendedDataElement[0...n].Children[0...m] = <Children<n>.Children>

次の CommonBaseEvent プロパティーは、マッピングする度に自動的にデータが取り込まれます。

CommonBaseEvent プロパティー
CreationTime 現在時刻 (ミリ秒単位)
GlobalInstanceId 固有の GUID
Situation Situation.CategoryName = "ReportSituation"
Situation.SituationType.ReasoningScope = "INTERNAL"
Situation.SituationType.ReportCategory = "LOG/TRACE"

次の表は、IStatus 重大度プロパティーと CommonBaseEvent の重大度プロパティーの間のマッピングを示しています。

IStatus 重大度 CommonBaseEvent 重大度
OK 9
INFO (通知) 19
WARNING (警告) 49
ERROR (エラー) 69
CANCEL (キャンセル) 70

次の表は、CommonBaseEvent 重大度から IStatus 重大度へのマッピングを示しています。

CommonBaseEvent 重大度の範囲 IStatus 重大度
0-10 OK
11-19 INFO (通知)
20-49 WARNING (警告)
50-69 ERROR (エラー)
70 CANCEL (キャンセル)

次の表は、Exception から CommonBaseEvent プロパティーへのマッピングを示しています。

IStatus プロパティー CommonBaseEvent プロパティー
Exception ExtendedDataElement.Name = "Throwable"
ExtendedDataElement.Type = "stringArray"
ExtendedDataElement.Values[0] = <Throwable's class name>[: <Throwable's localized message>]
ExtendedDataElement.Values[1...n] = <Throwable's stackTraceElement[0...(n - 1)]>
[ExtendedDataElement.Children[0] = <Throwable's cause>]

ここで、

ExtendedDataElement.Children[0].Name = "Cause"
ExtendedDataElement.Children[0].Type = "stringArray"
ExtendedDataElement.Children[0].Values[0] = <cause's class name>[: <cause's localized message>]
ExtendedDataElement.Children[0].Values[1...n] = <cause's stackTraceElement[0...(n - 1)]>
[ExtendedDataElement.Children[0].Children[0] = <cause's cause>]

注: 原因の Throwable は、上記と同じマッピングを使用して 再帰的に ExtendedDataElement に変換されます。