我想继承来扩展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
。