|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.apache.commons.logging.LogFactory
org.apache.commons.logging.impl.LogFactoryImpl
ログ実装のラッパを生成するため、次のアルゴリズムで動的にログ実装を選択する、
LogFactory の具象サブクラスです。
org.apache.commons.logging.Log
を使用して要求された実装クラスを判別します。org.apache.commons.logging.Log
を使用して要求された実装クラスを判別します。org.apache.commons.logging.impl.Log4JLogger インスタンスを返します。org.apache.commons.logging.impl.Jdk14Logger インスタンスを返します。org.apache.commons.logging.impl.SimpleLog インスタンスを返します。もし選択した Log 実装クラスが LogFactory を引数に取る
setLogFactory() メソッドを持つ場合は、ファクトリと関連付けるために
新たに生成したインスタンスのこのメソッドを実行します。
これにより、 Log インスタンスはファクトリに設定された属性を利用可能になります。
このファクトリは前に作成した Log インスタンスを記憶し、同じ名前で
再度 getInstance() メソッドが呼ばれた場合に(同じインスタンスを)返します。
この実装はいかなる設定された属性も無視します。
| フィールドの概要 | |
protected Hashtable |
attributes
設定のための属性。 |
protected Hashtable |
instances
ロガーの名称をキーにして保持される、既に生成された Log インスタンス。
|
static String |
LOG_PROPERTY
使用する Log 実装クラスを特定するシステムプロパティ名。
|
protected static String |
LOG_PROPERTY_OLD
古い LogSource クラスとの
下位互換のための、推奨されないシステムプロパティ名。
|
private String |
logClassName
Log インターフェイスを実装するクラスの名称。 |
protected Constructor |
logConstructor
新規インスタンスの生成に使用される、引数が 1 つの Log 実装クラスのコンストラクタ。
|
protected Class[] |
logConstructorSignature
コンストラクタで使用される引数。 |
protected Method |
logMethod
選択された Log
クラスの引数が 1 つの setLogFactory メソッド(もしあれば)。
|
protected Class[] |
logMethodSignature
setLogFactory メソッドで使用される引数。
|
| クラス org.apache.commons.logging.LogFactory から継承したフィールド |
factories, FACTORY_DEFAULT, FACTORY_PROPERTIES, FACTORY_PROPERTY, SERVICE_ID |
| コンストラクタの概要 | |
LogFactoryImpl()
ファクトリの検索機構が必要とする、引数なしの public コンストラクタ。 |
|
| メソッドの概要 | |
Object |
getAttribute(String name)
指定された名称の設定属性を返します(もしあれば)。 |
String[] |
getAttributeNames()
現在設定されている全属性の名称を配列で返します。 |
Log |
getInstance(Class clazz)
指定クラスから取得した名称を引数に getInstance(String)
を呼ぶ、手順簡略化のためのメソッドです。
|
Log |
getInstance(String name)
現在ファクトリに設定されている属性を使用して Log インスタンスを(必要であれば)生成し返します。
|
protected String |
getLogClassName()
使用する Log 実装クラスの完全修飾クラス名を返します。
|
protected Constructor |
getLogConstructor()
新規 Log
インスタンスの生成に使用するコンストラクタを返します。
|
protected boolean |
isJdk14Available()
JDK 1.4 以降のログ機能を利用可能か? |
protected boolean |
isLog4JAvailable()
Log4J 実装を利用可能か? |
private static Class |
loadClass(String name)
このメソッドは PRIVATE のままでなくてはなりません。 |
protected Log |
newInstance(String name)
指定された名称の新規 Log
インスタンスを生成し、返します。
|
void |
release()
このファクトリがこれまで生成・返却した全ての Log インスタンスへの内部参照を解放します。
|
void |
removeAttribute(String name)
指定された名称の設定属性を削除します。 |
void |
setAttribute(String name,
Object value)
指定された名称の設定属性を設定します。 |
| クラス org.apache.commons.logging.LogFactory から継承したメソッド |
getContextClassLoader, getFactory, getLog, getLog, newFactory, release, releaseAll |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static final String LOG_PROPERTY
Log 実装クラスを特定するシステムプロパティ名。
protected static final String LOG_PROPERTY_OLD
LogSource クラスとの
下位互換のための、推奨されないシステムプロパティ名。
protected Hashtable attributes
protected Hashtable instances
Log インスタンス。
private String logClassName
protected Constructor logConstructor
Log 実装クラスのコンストラクタ。
この値は getLogConstructor() で初期化され、繰り返し使用されます。
protected Class[] logConstructorSignature
protected Method logMethod
Log
クラスの引数が 1 つの setLogFactory メソッド(もしあれば)。
protected Class[] logMethodSignature
setLogFactory メソッドで使用される引数。
| コンストラクタの詳細 |
public LogFactoryImpl()
| メソッドの詳細 |
public Object getAttribute(String name)
null を返します。
LogFactory 内の getAttributename - 取得する属性の名称
public String[] getAttributeNames()
LogFactory 内の getAttributeNames
public Log getInstance(Class clazz)
throws LogConfigurationException
getInstance(String)
を呼ぶ、手順簡略化のためのメソッドです。
LogFactory 内の getInstanceclazz - 適切な Log 名称の取得元クラス
LogConfigurationException - 適切な Log
インスタンスを返せなかった場合
public Log getInstance(String name)
throws LogConfigurationException
現在ファクトリに設定されている属性を使用して
Log インスタンスを(必要であれば)生成し返します。
注 - 返される Log
インスタンスが現在のアプリケーション固有のものであるかどうか、
また複数回同じ名称でこのメソッドを呼んだ場合に同じインスタンスが返されるかどうかは、
使用している LogFactory の実装に依存します。
LogFactory 内の getInstancename - 返される Log インスタンスの論理名
(名称の意味はラップされ内部で動作するログ処理の実装のみが知っています)
LogConfigurationException - 適切な Log
インスタンスを返せなかった場合
public void release()
Log インスタンスへの内部参照を解放します。
これはサーブレットコンテナのような環境で、実装されたアプリケーションに対して
クラスローダからリロードが指示された場合に有用です。
そのクラスローダの配下で参照され続けるオブジェクトはガベージコレクションを妨げます。
LogFactory 内の releasepublic void removeAttribute(String name)
LogFactory 内の removeAttributename - 削除する属性の名称
public void setAttribute(String name,
Object value)
null 指定は
removeAttribute(name) と同等です。
LogFactory 内の setAttributename - 設定する属性の名称
value - 設定する属性の値。 null の場合にはこの属性を削除
protected String getLogClassName()
Log 実装クラスの完全修飾クラス名を返します。
protected Constructor getLogConstructor()
throws LogConfigurationException
新規 Log
インスタンスの生成に使用するコンストラクタを返します。
実装の注 - 結局いかなる状況でも同じ
Constructor インスタンスが取得されるため、
複数のスレッドがこのメソッドを呼ぶことにより起こる競合状況は無視されます。
LogConfigurationException - 適切なコンストラクタを返せない場合
private static Class loadClass(String name)
throws ClassNotFoundException
このメソッドは AccessController.doPrivileged() を使用しているため、
org.apache.commons.logging.LogFactoryImpl の外部へ公開すると
セキュリティ侵害につながります。
ClassNotFoundExceptionprotected boolean isJdk14Available()
protected boolean isLog4JAvailable()
protected Log newInstance(String name)
throws LogConfigurationException
Log
インスタンスを生成し、返します。
name - 新規ロガーの名称
LogConfigurationException - 新規インスタンスを生成できなかった場合
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||