診断プロバイダーを使用してアラートとメッセージを管理している場合は、診断プロバイダー ID をロガーと関連付ける必要があります。 これは動的に実行することも、 静的な割り当てを介して実行することもできます。
診断プロバイダー MBean を介して診断が管理されるコンポーネントでは、 すべてのログ・メッセージに診断プロバイダー ID (DPID) が含まれている 必要があります。単一のロガーが常に同じ DPID を使用してログに記録する場合があります。このような場合は、 その DPID をロガーと静的に関連付けることが適切です。 また、ロガーがさまざまな診断ドメインの代理としてログへの記録を行う場合があります。 例えば、データ・ソースはすべて異なる診断プロバイダー MBean を持っているものの、 同一のロガーを共有している場合などがこれに該当します。このような場合には、DPID がロギング・コールごとに動的に 提供されるようにすることができます。
Logger logger = Logger.getLogger("com.ibm.ws.MyClass"); DiagnosticProviderHelper.addDiagnosticProviderIDtoLogger(logger, dpid);
Object[] parms = new Object[] { "DPID:" + dpid }; logger.logp(classname, methodname, "MSG0001", parms);
(in resource bundle) // by not including {0} first parm is not printed in the message. MSG0001=This message does not include the DPID. // note - it is not recommended to print the DPID in your message. MSG0002=This message includes the DPID...it's value is {0}.
定様式のメッセージには DPID が組み込まれないようにすることを 推奨します。上記で示したように、リソース・バンドルのメッセージ値に {0} を含めないことにより、 DPID が組み込まれなくなります。