org.apache.commons.logging
クラス LogFactory

java.lang.Object
  拡張org.apache.commons.logging.LogFactory
直系の既知のサブクラス:
Log4jFactory, LogFactoryImpl

public abstract class LogFactory
extends Object

Log インスタンスを生成するファクトリです。(ログ処理の)製品の発見・設定を行う機能は、 JAXP のような標準的な Java API で使われている機能に類似しています。

実装に関する注記 - この実装の多くは Apache Xerces 内の (JAXP のプラグイン的機能のAPIに相当する) SAXParserFactory と DocumentBuilderFactory の実装をベースとしています。

バージョン:
$Revision: 1.3 $ $Date: 2004/04/08 12:23:54 $
作成者:
Craig R. McClanahan, Costin Manolache, Richard A. Sitze
翻訳者:
日置 聡
校正者:
高橋 達男

フィールドの概要
protected static Hashtable factories
          生成時に使用された ClassLoader をキーとして格納される 生成済みの LogFactory インスタンス。
static String FACTORY_DEFAULT
          他に設定が見つからなかった場合に使用するデフォルトの LogFactory 実装クラスの完全修飾名。
static String FACTORY_PROPERTIES
          検索対象となるプロパティファイルの名称。
static String FACTORY_PROPERTY
          LogFactory 実装クラス名を特定するために使用するプロパティの名称。
protected static String SERVICE_ID
          JDK1.3 以降で適用される 'サービスプロバイダ' の識別情報。
 
コンストラクタの概要
protected LogFactory()
          public で利用できないようにするための protected コンストラクタ。
 
メソッドの概要
private static void cacheFactory(ClassLoader classLoader, LogFactory factory)
           
abstract  Object getAttribute(String name)
          指定された名称の設定のための属性を返します(もしあれば)。
abstract  String[] getAttributeNames()
          現在設定されている全ての属性の名称を配列に格納して返します。
private static LogFactory getCachedFactory(ClassLoader contextClassLoader)
          キャッシュしているファクトリをチェックします(クラスローダをキーとして)。
protected static ClassLoader getContextClassLoader()
          利用できる場合にはスレッドコンテキストクラスローダを返します。
static LogFactory getFactory()
          以下の順番でロードする実装クラスの名称を検索し、 LogFactory インスタンスを (必要ならば生成して) 返します。
abstract  Log getInstance(Class clazz)
          指定されたクラスから名称を取得して自身の getInstance(String) を呼ぶ、手順簡略化のためのメソッドです。
abstract  Log getInstance(String name)
          現在のファクトリに設定されている属性を使用して Log インスタンスを(必要ならば生成して)返します。
static Log getLog(Class clazz)
          アプリケーションがファクトリを意識せずに指定した名称のロガーを取得できる 手順簡略化のためのメソッドです。
static Log getLog(String name)
          アプリケーションがファクトリを意識せずに指定した名称のロガーを取得できる 手順簡略化のためのメソッドです。
private static InputStream getResourceAsStream(ClassLoader loader, String name)
           
protected static LogFactory newFactory(String factoryClass, ClassLoader classLoader)
          指定した LogFactory 実装クラスの新しいインスタンスを、 指定したクラスローダからロードして返します。
abstract  void release()
          その時点までにこのファクトリが生成して返した全ての Log インスタンスへの内部参照を解放します。
static void release(ClassLoader classLoader)
          指定したクラスローダに関連し、その時点までに生成された各 LogFactory インスタンスの release() メソッドを呼んだ後、 各インスタンスへの内部参照を (もしあれば) すべて解放します。
static void releaseAll()
          その時点までにこのファクトリが生成して返した全ての LogFactory インスタンスで release() を呼び出した後、各インスタンスへの内部参照を解放します。
abstract  void removeAttribute(String name)
          指定された名称の設定属性を削除します。
abstract  void setAttribute(String name, Object value)
          指定された名称の設定属性をセットします。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FACTORY_PROPERTY

public static final String FACTORY_PROPERTY
LogFactory 実装クラス名を特定するために使用するプロパティの名称。

関連項目:
定数フィールド値

FACTORY_DEFAULT

public static final String FACTORY_DEFAULT
他に設定が見つからなかった場合に使用するデフォルトの LogFactory 実装クラスの完全修飾名。

関連項目:
定数フィールド値

FACTORY_PROPERTIES

public static final String FACTORY_PROPERTIES
検索対象となるプロパティファイルの名称。

関連項目:
定数フィールド値

SERVICE_ID

protected static final String SERVICE_ID
JDK1.3 以降で適用される 'サービスプロバイダ' の識別情報。 ( http://java.sun.com/j2se/1.3/ja/docs/ja/guide/jar/jar.html )

関連項目:
定数フィールド値

factories

protected static Hashtable factories
生成時に使用された ClassLoader をキーとして格納される 生成済みの LogFactory インスタンス。

コンストラクタの詳細

LogFactory

protected LogFactory()
public で利用できないようにするための protected コンストラクタ。

メソッドの詳細

getAttribute

public abstract Object getAttribute(String name)
指定された名称の設定のための属性を返します(もしあれば)。 指定された属性がない場合には null を返します。

パラメータ:
name - 取得する属性の名称

getAttributeNames

public abstract String[] getAttributeNames()
現在設定されている全ての属性の名称を配列に格納して返します。 属性が一つも存在しない場合には長さが0の配列を返します。


getInstance

public abstract Log getInstance(Class clazz)
                         throws LogConfigurationException
指定されたクラスから名称を取得して自身の getInstance(String) を呼ぶ、手順簡略化のためのメソッドです。

パラメータ:
clazz - 適切な Log 名称の取得元のクラス
例外:
LogConfigurationException - 適切な Log インスタンスを返せなかった場合

getInstance

public abstract Log getInstance(String name)
                         throws LogConfigurationException

現在のファクトリに設定されている属性を使用して Log インスタンスを(必要ならば生成して)返します。

- 返される Log インスタンスが現在のアプリケーション固有のものであるかどうか、 また同じ名称を引数にこのメソッドを複数回呼んだ場合に同じインスタンスが返されるかどうかは使用している LogFactory に依存します。

パラメータ:
name - 返される Log インスタンスの論理名 (名称の意味はラップされる内部のログ処理実装だけが知っています)
例外:
LogConfigurationException - 適切な Log インスタンスを返せなかった場合

release

public abstract void release()
その時点までにこのファクトリが生成して返した全ての Log インスタンスへの内部参照を解放します。 これはサーブレットコンテナのように、クラスローダを捨てるという方法で アプリケーションのリロードを実装している場合に役立ちます。 (捨てられた) クラスローダの配下のオブジェクトへの参照が宙ぶらりんになる (ダングリング) ため、 (このメソッドを呼び出さないと) ガベージコレクションが行なわれないからです。


removeAttribute

public abstract void removeAttribute(String name)
指定された名称の設定属性を削除します。 該当する属性がない場合には何も行いません。

パラメータ:
name - 削除する属性の名称

setAttribute

public abstract void setAttribute(String name,
                                  Object value)
指定された名称の設定属性をセットします。 値に null が設定された場合には removeAttribute(name) を呼びます。

パラメータ:
name - 設定する属性の名称
value - 設定する属性の値。 null の場合にはこの属性を削除

getFactory

public static LogFactory getFactory()
                             throws LogConfigurationException

以下の順番でロードする実装クラスの名称を検索し、 LogFactory インスタンスを (必要ならば生成して) 返します。

- LogFactory 実装クラスを見つけるのにプロパティファイルを使った場合、 このファイル内に記述された全てのプロパティが、該当する LogFactory インスタンスの設定属性にセットされます。

例外:
LogConfigurationException - 実装クラスが見つからない、またはインスタンス化できない場合

getLog

public static Log getLog(Class clazz)
                  throws LogConfigurationException
アプリケーションがファクトリを意識せずに指定した名称のロガーを取得できる 手順簡略化のためのメソッドです。

パラメータ:
clazz - ログ名称の取得元のクラス
例外:
LogConfigurationException - 適切な Log インスタンスを返せなかった場合

getLog

public static Log getLog(String name)
                  throws LogConfigurationException
アプリケーションがファクトリを意識せずに指定した名称のロガーを取得できる 手順簡略化のためのメソッドです。

パラメータ:
name - 返される Log インスタンスの論理名 (名称の意味はラップされる内部のログ処理実装だけが知っています)
例外:
LogConfigurationException - 適切な Log インスタンスを返せなかった場合

release

public static void release(ClassLoader classLoader)
指定したクラスローダに関連し、その時点までに生成された各 LogFactory インスタンスの release() メソッドを呼んだ後、 各インスタンスへの内部参照を (もしあれば) すべて解放します。

パラメータ:
classLoader - 解放対象の LogFactory が属するクラスローダ

releaseAll

public static void releaseAll()
その時点までにこのファクトリが生成して返した全ての LogFactory インスタンスで release() を呼び出した後、各インスタンスへの内部参照を解放します。 これはサーブレットコンテナのように、クラスローダを捨てるという方法で アプリケーションのリロードを実装している場合に役立ちます。 (捨てられた) クラスローダの配下のオブジェクトへの参照が宙ぶらりんになる (ダングリング) ため、 (このメソッドを呼び出さないと) ガベージコレクションが行なわれないからです。


getContextClassLoader

protected static ClassLoader getContextClassLoader()
                                            throws LogConfigurationException
利用できる場合にはスレッドコンテキストクラスローダを返します。 利用できない場合には null を返します。 セキュリティが信頼できる状態であれば スレッドコンテキストクラスローダは JDK 1.2 以降で利用することができます。

例外:
LogConfigurationException - 適切なクラスローダを認識できなかった場合。

getCachedFactory

private static LogFactory getCachedFactory(ClassLoader contextClassLoader)
キャッシュしているファクトリをチェックします(クラスローダをキーとして)。


cacheFactory

private static void cacheFactory(ClassLoader classLoader,
                                 LogFactory factory)

newFactory

protected static LogFactory newFactory(String factoryClass,
                                       ClassLoader classLoader)
                                throws LogConfigurationException
指定した LogFactory 実装クラスの新しいインスタンスを、 指定したクラスローダからロードして返します。 失敗した場合にはこの (abstract の) LogFactory をロードする際に使用したクラスローダでロードを試みます。

パラメータ:
factoryClass - LogFactory 実装クラスの完全修飾名
classLoader - ファクトリクラスをロードする際に使用するクラスローダ
例外:
LogConfigurationException - 適切なクラスローダを認識できなかった場合。

getResourceAsStream

private static InputStream getResourceAsStream(ClassLoader loader,
                                               String name)


このドキュメントは、Ja-Jakartaにより訳されました。 コメントがある場合は report@jajakarta.orgまでお願いします。
Translated into Japanese by jajakarta.org. The original page is here.
Copyright (c) 2002-2003 - Apache Software Foundation