首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用配置java.util.logging?

用配置java.util.logging?
EN

Stack Overflow用户
提问于 2013-10-23 02:15:23
回答 2查看 450关注 0票数 0

我希望加载属性文件和命令行参数,然后在运行时动态配置日志记录,我以前可以这样做:

代码语言:javascript
复制
Properties configuration;
...

ByteArrayOutputStream os = new ByteArrayOutputStream();
ByteArrayInputStream is;
byte[] buf;
try {
    configuration.store(os, "logging");
    buf = os.toByteArray();
    is = new ByteArrayInputStream(buf);
    java.util.logging.LogManager.getLogManager().readConfiguration(is);
} catch (IOException e) {
    System.err.println("Failed to configure java.util.logging.LogManager");
}

属性很好,但是可以用PropertiesConfiguration完成吗?

(FYI曾希望利用configuration提供的属性数组)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-29 09:45:02

使用ConfigurationConverter将PropertiesConfiguration转换为标准的poperties文件

票数 1
EN

Stack Overflow用户

发布于 2013-10-23 05:12:00

不是的。但您可以将PropertiesConfiguration转换为属性

代码语言:javascript
复制
public static Properties configurationAsProperties(){
    Properties fromConfiguration = new Properties();
    Iterator<String> keys = configuration.getKeys();
    while (keys.hasNext()) {
        String key = keys.next();
        String value = asString(configuration.getProperty(key));
        fromConfiguration.setProperty(key,value);
        // System.out.println(key + " = " + value);
    }
    return fromConfiguration;
}

只是不要丢失那些逗号分隔的值(configuration.getString只会返回第一个)

代码语言:javascript
复制
private static String asString(Object value) {
    if (value instanceof List) {
        List<?> list = (List<?>) value;
        value = StringUtils.join(list.iterator(), ",");
    }
    return (String) value;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19531600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档