継承して拡張したいjava.util.logging.Logger
。表示されるコンストラクターは
protected Logger(String name, String resourceBundleName)
これは、インスタンスを取得する場合、2つの方法を提供するという事実にもかかわらずです。
static Logger getLogger(String name)
static Logger getLogger(String name, String resourceBundleName)
国際化プロパティファイルと関連オブジェクトを作成せずにコンストラクターを使用できるように、 ある種のデフォルトResourceBundle
またはデフォルト名を取得する方法はありますか?ResourceBundle
もちろん、ラッパークラスを作成しgetLogger(String name)
て、名前の必要性を回避するために使用することもできResourceBundle
ます。残念ながら、これは、使用するすべてのLogger
メソッドにラッパーメソッドを実装する必要があることを意味します。(タイピングが多すぎます)。
編集:ロガーからデフォルトのローカリゼーションデータを取得する次の試みは機能しません。
import java.util.logging.Logger;
class JLogger extends Logger
{
static Logger dummyLogger = Logger.getLogger("com.dummy.utilities");
private JLogger(String name)
{
super(name, JLogger.dummyLogger.getResourceBundleName());
}
static JLogger getJLogger(String name)
{
return new JLogger(name);
}
public void severe() // a zero arguments version of severe
{
severe("");
}
}
はgetResourceBundleName()
nullを返します。コンストラクターはsuper(name, resourceName)
、2番目の引数が。の場合、ロギングを行わないものを作成しますnull
。