Я хочу наследовать, чтобы расширить java.util.logging.Logger
.Единственный видимый конструктор - это
protected Logger(String name, String resourceBundleName)
. Несмотря на то, что когда вы хотите получить экземпляр, они предлагают два способа:
static Logger getLogger(String name)
static Logger getLogger(String name, String resourceBundleName)
Есть ли способ получить какой-то видпо умолчанию ResourceBundle
или имя по умолчанию ResourceBundle
, чтобы я мог использовать конструктор, не создавая файл свойств интернационализации и связанный объект?
Конечно, я мог бы просто создать класс-обертку и использовать getLogger(String name)
, чтобы избежать необходимости в имени ResourceBundle
.К сожалению, это означает, что мне пришлось бы реализовывать метод-обертку для каждого метода Logger
, который я хочу использовать.(Слишком много печатается).
Редактировать: Следующая попытка получить данные локализации по умолчанию из 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()
просто возвращает ноль.Конструктор super(name, resourceName)
создает что-то, что не ведет журналирование, если вторым аргументом является null
.