ナビゲーションをスキップ

インターナショナライゼーション ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

BEA WebLogic Server 用の Logger クラスのリファレンス

以下の節では、Logger クラスのリファレンス情報を提供します。

 


Logger クラスの概要

i18ngen によって生成されるクラスは、Logger と呼ばれています。Logger クラスは、WebLogic Server エラー ログのインタフェースを提供します。カタログ Xyz.xml の場合、Logger クラス XyzLogger が生成されます。

Logger クラスは、カタログに定義されたすべてのメッセージを WebLogic Server ログに記録するメソッドを提供します。組み込まれているメソッドは、関連するカタログで定義されたものと同じです。カタログで loggables 属性が true に指定されていると、メッセージごとに Loggable メソッドが併せて生成されます。

詳細については、「BEA WebLogic Server 用の Loggable オブジェクトのリファレンス」を参照してください。

 


生成された Logger クラスの例

生成された Logger クラスの例をコード リスト  D-1 に示します。

コード リスト D-1 生成された Logger クラスの例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message_catalog PUBLIC "weblogic-message-catalog-dtd" "http://www.bea.com/servers/wls810/dtd/msgcat.dtd">
<message_catalog
i18n_package="examples.i18n.logging"
l10n_package="examples.i18n.logging"
subsystem="I18N"
version="1.0"
baseid="600000"
endid="610000"
loggables="true"
>
<logmessage
messageid="600000"
method="logEntry()"
severity="info"
>
<messagebody>Starting I18nLog example...</messagebody>
<messagedetail></messagedetail>
<cause></cause>
<action></action>
</logmessage>
<logmessage
messageid="600001"
method="testArgs(String name,int cnt)"
severity="debug"
>
<messagebody>Class {0} started with {1,number} arguments.</messagebody>
<messagedetail></messagedetail>
<cause></cause>
<action></action>
</logmessage>
<logmessage
messageid="600002"
method="logTrace(Throwable t)"
severity="error"
stacktrace="true"
>
<messagebody>This message is followed by a trace</messagebody>
<messagedetail></messagedetail>
<cause></cause>
<action></action>
</logmessage>
<logmessage
messageid="600003"
method="logNoTrace(Throwable t)"
severity="warning"
stacktrace="false"
>
<messagebody>This message is not followed by a trace, but we can insert its text : {0}</messagebody>
<messagedetail></messagedetail>
<cause></cause>
<action></action>
</logmessage>
<logmessage
messageid="600004"
method="getId()"
severity="info"
>
<messagebody>This message's id will be in the next message</messagebody>
<messagedetail>A message can contain additional detailed information.</messagedetail>
<cause>This message is displayed on purpose</cause>
<action>Nothing to do, the example is working</action>
</logmessage>
<logmessage
messageid="600005"
method="showId(String id)"
severity="info"
>
<messagebody>The previous message logged had message id {0}</messagebody>
<messagedetail></messagedetail>
<cause></cause>
<action></action>
</logmessage>
</message_catalog>

コード リスト  D-2 は、weblogic.i18ngen が生成した、これに対応する Java ソースを示しています。

コード リスト D-2 生成された Logger クラスの例

package examples.i18n.logging;

import weblogic.logging.MessageLogger;
import weblogic.logging.Loggable;
import java.util.MissingResourceException;

/**
* Copyright (c) 2001 by BEA Systems, Inc. All Rights Reserved.
* @exclude
*/
public class I18nLogLogger
{
/**
* I18nLog サンプルの開始 ...
* @exclude
*
* messageid: 600000
* severity: info
*/
public static String logEntry() {
Object [] args = { };
MessageLogger.log(
"600000",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600000";
}
public static Loggable logEntryLoggable() throws MissingResourceException {
Object[] args = { };
return new Loggable("600000", args);
}
/**
* クラス {0} が {1,number} 個の引数で起動する
* @exclude
*
* messageid: 600001
* severity: debug
*/
public static String testArgs(String arg0, int arg1) {
Object [] args = { arg0, new Integer(arg1) };
MessageLogger.log(
"600001",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600001";
}
public static Loggable testArgsLoggable(String arg0, int arg1) throws MissingResourceException {
Object[] args = { arg0, new Integer(arg1) };
return new Loggable("600001", args);
}
/**
* このメッセージの後にトレースが続く
* @exclude
*
* messageid: 600002
* severity: error
*/
public static String logTrace(Throwable arg0) {
Object [] args = { arg0 };
MessageLogger.log(
"600002",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600002";
}
public static Loggable logTraceLoggable(Throwable arg0) throws MissingResourceException {
Object[] args = { arg0 };
return new Loggable("600002", args);
}
/**
* このメッセージの後にトレースは続かないが、テキストを挿入できる : {0}
* @exclude
*
* messageid: 600003
* severity: warning
*/
public static String logNoTrace(Throwable arg0) {
Object [] args = { arg0 };
MessageLogger.log(
"600003",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600003";
}
public static Loggable logNoTraceLoggable(Throwable arg0) throws MissingResourceException {
Object[] args = { arg0 };
return new Loggable("600003", args);
}
/**
* このメッセージの ID は次のメッセージに含まれる
* @exclude
*
* messageid: 600004
* severity: info
*/
public static String getId() {
Object [] args = { };
MessageLogger.log(
"600004",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600004";
}
public static Loggable getIdLoggable() throws MissingResourceException {
Object[] args = { };
return new Loggable("600004", args);
}
/**
* 以前にログに書き込まれたメッセージのメッセージ ID {0}
* @exclude
*
* messageid: 600005
* severity: info
*/
public static String showId(String arg0) {
Object [] args = { arg0 };
MessageLogger.log(
"600005",
args,
"examples.i18n.logging.I18nLogLogLocalizer");
return "600005";
}
public static Loggable showIdLoggable(String arg0) throws MissingResourceException {
Object[] args = { arg0 };
return new Loggable("600005", args);
}

}

コード リスト  D-3 は、weblogic.i18nLog (インターナショナライズ (I18n) ロギング インタフェース) を使用するサンプル アプリケーションを示しています。この例では、通知メッセージがログとして記録されます。

コード リスト D-3 i18nLog を使用するアプリケーション例

package examples.i18n.logging;

import java.util.Locale;

import weblogic.i18n.Localizer;
import weblogic.i18ntools.L10nLookup;
import weblogic.logging.Loggable;

/**
* @author Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved.
*/

/**
* この例では、インターナショナライズ (I18n) ロギング インタフェースの使用法を示す
* <p>
* 使い方 : java examples.i18n.logging.I18nLog
* <p>
* ビルド プロシージャ : run bld.sh (UNIX) または bld.cmd (NT)。このスクリプトにより、
* I18nLog.xml カタログが処理され、ロギング クラス、
* <tt>examples.i18n.logging.I18nLogLogger</tt> が生成される。このクラスには、
* WLS エラー ログに記録メッセージを記録する静的メソッドが含まれる。このメソッドと
* 引数は、I18nLog.xml カタログに定義されている。この例では、
* シンプル メッセージ カタログ、I18nSimple.xml も使用している
*/


public class I18nLog {

public I18nLog() {}

public static void main(String[] argv) {
/**
* この呼び出しでは、info メッセージがログに書き込まれるだけである。このメソッドには、
* 引数は定義されていない
*
* ここでは、メソッドの Loggable 形式の使用方法も示している
*/

Loggable ll = I18nLogLogger.logEntryLoggable();
ll.log();
System.out.println(ll.getMessage());

/**
* ここに示すのは、さまざまな引数を含むメッセージのサンプル
* である
*/
I18nLogLogger.testArgs(I18nLog.class.getName(),argv.length);
/**
* Throwable が渡された場合は、デフォルトにより、メソッドと共に
* スタックトレースがログに書き込まれる
*/
Throwable t = new Throwable("Test with stack trace");
I18nLogLogger.logTrace(t);
/**
* スタック トレースをログ記録しないようにメッセージを定義することもできる
*/
I18nLogLogger.logNoTrace(t);
/**
* logger メソッドは、これらのメッセージのログだけではなく他の処理も
* 行うアプリケーションのメッセージ ID を返す
*/
String messageId = I18nLogLogger.getId();
I18nLogLogger.showId(messageId);
/**
* メッセージ ID は、メッセージのさまざまな属性の入手に使用でき
* る。L10nLookup オブジェクトにより、Localizer クラスを通じてカタログにアクセス
* できる。Localizer により、個々のメッセージにアクセス
* できる。各ログ メッセージ カタログには、一般メッセージ情報用と
* 詳細属性用の 2 つの Localizer が入っている
*
* 基本 Localizer によって、以下のカタログ情報にアクセスする
* Version
* L10n Package - カタログ データ用パッケージ
* I18n Package - Logger メソッド用パッケージ
* Subsystem - カタログ サブシステム
* また、メッセージごとに以下の情報を提供する
* Severity: debug (128), info (64), warning (32), error (8)
* Message Body - メッセージ テキスト
* Stack option - スタック トレースをログに記録するかどうかの選択
*
* まず、L10nLookup プロパティを開き、プロパティを使用して、
* メッセージに対する Localizer の内容を入手する
*/
L10nLookup l10n = L10nLookup.getL10n();
/**
* 以下のコードは、基本 Localizer (arg 3 = false) を返す
*/
Localizer lcl = l10n.getLocalizer(messageId,Locale.getDefault(),false);
/**
* 以下のコードは、詳細 Localizer (arg 3 = true) を返す
*/
Localizer lclDetail = l10n.getLocalizer(messageId,Locale.getDefault(),true);
/**
* このアプリケーションのシンプル メッセージ カタログは、ログ メッセージ
* カタログ情報の表示に使用する
*/
I18nSimpleTextFormatter fmt = new I18nSimpleTextFormatter();
System.out.println(fmt.version(messageId,lcl.getVersion()));
System.out.println(fmt.l10nPackage(messageId,lcl.getL10nPackage()));
System.out.println(fmt.i18nPackage(messageId,lcl.getI18nPackage()));
System.out.println(fmt.subsystem(messageId,lcl.getSubSystem()));
System.out.println(fmt.severity(messageId,lcl.getSeverity(messageId)));
System.out.println(fmt.body(messageId,lcl.getBody(messageId)));
System.out.println(fmt.stack(messageId,lcl.getStackTrace(messageId)));
/**
* 次は詳細情報
*/
System.out.println(fmt.detail(messageId,lclDetail.getDetail(messageId)));
System.out.println(fmt.cause(messageId,lclDetail.getCause(messageId)));
System.out.println(fmt.action(messageId,lclDetail.getAction(messageId)));

}
}

 

ページの先頭 前 次