B WebLogic Server用のLoggableオブジェクトのリファレンス
Loggableオブジェクトは、後からログに記録されるログ・メッセージの生成に使用されます。
Loggableオブジェクトについて
デフォルトでは、すべてのログ・メッセージ・カタログは、メッセージのWebLogic Serverログへの書込みに使用されるメソッドを含む
Loggerクラスを作成します。Loggerクラスには、メッセージをログに記録せずに、Loggableオブジェクトを返すメソッドをオプションで組み込むことができます。Loggableオブジェクトは、ログ・メッセージを生成しますが、実際のログへの書込みは後から行う場合に便利です。また、例外のスローなど、他の目的にメッセージ・テキストを使用する場合にも使用できます。
Loggableオブジェクトの使用方法
Loggableオブジェクトを返すメソッドを持つ
Loggerクラスを作成するには、メッセージ・カタログにloggables属性を設定する必要があります。 たとえば、例B-1に示すtest.xmlカタログを考えます。
例B-1 test.xmlメッセージ・カタログ
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls90/dtd/msgcat.dtd">
<message_catalog
subsystem="Examples"
version="1.0"
baseid="500000"
endid="500001"
loggables="true"
>
<logmessage
messageid="500000"
severity="error"
method="logIOError(Throwable t)"
>
<messagebody>
IO failure detected.
</messagebody>
<messagedetail>
</messagedetail>
<cause>
</cause>
<action>
</action>
</logmessage>
</message_catalog>
このカタログをweblogic.i18ngenユーティリティで実行すると、このカタログに対して次の2つのメソッドを持つLoggerクラスが作成されます。
-
logIOError (throwable)- メッセージをログに記録する -
logIOErrorLoggable (throwable)- Loggableオブジェクトを返す
Loggableオブジェクトの使用例は、例B-2に示しています。
例B-2 Loggableオブジェクトの使用例
package test;
import weblogic.logging.Loggable;
import weblogic.i18n.testLogger;
...
try {
// some IO
} catch (IOException ioe) {
Loggable l = testLogger.logIOErrorLoggable(ioe);
l.log(); // log the error
throw new Exception(l.getMessage());//throw new exception with
same text as logged
}