gpt4 book ai didi

java - 当您不需要本地化时,是否有一种简约的方法来获取默认的 ResourceBundle?

转载 作者:行者123 更新时间:2023-12-01 15:41:33 24 4
gpt4 key购买 nike

我想继承并扩展java.util.logging.Logger。唯一可见的构造函数是

protected Logger(String name, String resourceBundleName)

尽管事实上,当您想要获取实例时,他们提供了两种方法:

static Logger   getLogger(String name)
static Logger getLogger(String name, String resourceBundleName)

有没有办法获取某种默认ResourceBundleResourceBundle的默认名称,以便我可以使用构造函数而无需创建国际化属性文件和关联对象?

当然,我可以简单地生成一个包装类并使用 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() 仅返回 null。如果第二个参数为 null,则 super(name, resourceName) 构造函数会构建不执行任何日志记录的内容。

最佳答案

Unfortunately that means I would have to implement a wrapper method for every Logger method I want to use. (Too much typing).

无需这样做,已经完成了。看看SLF4JCommons Logging ,它们为 java.util.logging 提供了合理的包装器,隐藏了该 API 的糟糕之处。

这两个 API 还可以委托(delegate)给适当的底层日志实现,例如 Logback 或 Log4J,完全绕过 java.util.logging。

关于java - 当您不需要本地化时,是否有一种简约的方法来获取默认的 ResourceBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com