|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.apache.commons.logging.LogFactory
Log インスタンスを生成するファクトリです。(ログ処理の)製品の発見・設定を行う機能は、
JAXP のような標準的な Java API で使われている機能に類似しています。
実装に関する注記 - この実装の多くは Apache Xerces 内の (JAXP のプラグイン的機能のAPIに相当する) SAXParserFactory と DocumentBuilderFactory の実装をベースとしています。
| フィールドの概要 | |
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 |
| フィールドの詳細 |
public static final String FACTORY_PROPERTY
public static final String FACTORY_DEFAULT
LogFactory 実装クラスの完全修飾名。
public static final String FACTORY_PROPERTIES
protected static final String SERVICE_ID
protected static Hashtable factories
ClassLoader をキーとして格納される
生成済みの LogFactory インスタンス。
| コンストラクタの詳細 |
protected LogFactory()
| メソッドの詳細 |
public abstract Object getAttribute(String name)
null を返します。
name - 取得する属性の名称
public abstract String[] getAttributeNames()
public abstract Log getInstance(Class clazz)
throws LogConfigurationException
getInstance(String) を呼ぶ、手順簡略化のためのメソッドです。
clazz - 適切な Log 名称の取得元のクラス
LogConfigurationException - 適切な Log
インスタンスを返せなかった場合
public abstract Log getInstance(String name)
throws LogConfigurationException
現在のファクトリに設定されている属性を使用して
Log インスタンスを(必要ならば生成して)返します。
注 - 返される Log インスタンスが現在のアプリケーション固有のものであるかどうか、
また同じ名称を引数にこのメソッドを複数回呼んだ場合に同じインスタンスが返されるかどうかは使用している
LogFactory に依存します。
name - 返される Log インスタンスの論理名
(名称の意味はラップされる内部のログ処理実装だけが知っています)
LogConfigurationException - 適切な Log
インスタンスを返せなかった場合
public abstract void release()
Log インスタンスへの内部参照を解放します。
これはサーブレットコンテナのように、クラスローダを捨てるという方法で
アプリケーションのリロードを実装している場合に役立ちます。
(捨てられた) クラスローダの配下のオブジェクトへの参照が宙ぶらりんになる (ダングリング) ため、
(このメソッドを呼び出さないと) ガベージコレクションが行なわれないからです。
public abstract void removeAttribute(String name)
name - 削除する属性の名称
public abstract void setAttribute(String name,
Object value)
null が設定された場合には
removeAttribute(name) を呼びます。
name - 設定する属性の名称
value - 設定する属性の値。 null の場合にはこの属性を削除
public static LogFactory getFactory()
throws LogConfigurationException
以下の順番でロードする実装クラスの名称を検索し、
LogFactory インスタンスを (必要ならば生成して) 返します。
org.apache.commons.logging.LogFactory システムプロパティ。commons-logging.properties というプロパティファイル
があった場合には、このファイルの記述内容。
この設定ファイルは標準の java.util.Properties フォーマットで
完全修飾名の実装クラス名がシステムプロパティで定義されたキーで記述されている必要があります。org.apache.commons.logging.impl.LogFactoryImpl)。注 - LogFactory 実装クラスを見つけるのにプロパティファイルを使った場合、
このファイル内に記述された全てのプロパティが、該当する LogFactory
インスタンスの設定属性にセットされます。
LogConfigurationException - 実装クラスが見つからない、またはインスタンス化できない場合
public static Log getLog(Class clazz)
throws LogConfigurationException
clazz - ログ名称の取得元のクラス
LogConfigurationException - 適切な Log インスタンスを返せなかった場合
public static Log getLog(String name)
throws LogConfigurationException
name - 返される Log インスタンスの論理名
(名称の意味はラップされる内部のログ処理実装だけが知っています)
LogConfigurationException - 適切な Log インスタンスを返せなかった場合
public static void release(ClassLoader classLoader)
LogFactory インスタンスの
release() メソッドを呼んだ後、
各インスタンスへの内部参照を (もしあれば) すべて解放します。
classLoader - 解放対象の LogFactory が属するクラスローダ
public static void releaseAll()
LogFactory インスタンスで
release() を呼び出した後、各インスタンスへの内部参照を解放します。
これはサーブレットコンテナのように、クラスローダを捨てるという方法で
アプリケーションのリロードを実装している場合に役立ちます。
(捨てられた) クラスローダの配下のオブジェクトへの参照が宙ぶらりんになる (ダングリング) ため、
(このメソッドを呼び出さないと) ガベージコレクションが行なわれないからです。
protected static ClassLoader getContextClassLoader()
throws LogConfigurationException
LogConfigurationException - 適切なクラスローダを認識できなかった場合。
private static LogFactory getCachedFactory(ClassLoader contextClassLoader)
private static void cacheFactory(ClassLoader classLoader,
LogFactory factory)
protected static LogFactory newFactory(String factoryClass,
ClassLoader classLoader)
throws LogConfigurationException
LogFactory 実装クラスの新しいインスタンスを、
指定したクラスローダからロードして返します。
失敗した場合にはこの (abstract の) LogFactory をロードする際に使用したクラスローダでロードを試みます。
factoryClass - LogFactory 実装クラスの完全修飾名
classLoader - ファクトリクラスをロードする際に使用するクラスローダ
LogConfigurationException - 適切なクラスローダを認識できなかった場合。
private static InputStream getResourceAsStream(ClassLoader loader,
String name)
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||