通过log4j.xml&将数组作为参数传递log4j.properties

时间:2017-12-07 05:57:35

标签: java java-8 log4j

有人可以告诉我是否可以通过log4j.xmllog4j.properties将数组或列表传递给log4j appender属性?

我想通过log4j.xmllog4j.properties

填充下面的内容
private List<String> validPackages;

public List<String> getValidPackages() {
        return buildVersionFile;
}

public void setValidPackages(List<String> validPackages) {
        this.validPackages = validPackages
}

1 个答案:

答案 0 :(得分:0)

正如log4j mailing list中所讨论的,我们不能只传递log4j中的属性。我们必须实现一个插件

  

我没有对此进行测试,但是从插件文档&lt;   http://logging.apache.org/log4j/2.x/manual/plugins.html&gt;,如果你做的话   一个实现Collection的插件,然后你可以自动完成   将其子项转换为该集合。但是,在那个用例中,   你需要为validPackages列表另一个插件元素   一个普通的字符串。

     

没有用于数组的内置TypeConverter(除了byte []和   char [],无论如何都有特殊意义),所以另一种选择   将为Collection或类似添加TypeConverter,   虽然在那个时候通过泛化泛型来获得更一般的收藏   使用将成为IMO沮丧的运动。