正在关注文档 - Apache Log4j2 Configuratoin和Apache Log4j2 Maven在使用yaml配置log4j2时。 根据文档,需要以下maven依赖项:
org.apache.logging.log4j
log4j-api
2.8.1
org.apache.logging.log4j
log4j-core
2.8.1
和
com.fasterxml.jackson.dataformat
jackson-dataformat-yaml
2.8.6
只是添加这些没有选择配置,总是给出错误。 通过添加Test Dependencies来调试配置的方式有助于查看日志。 后来不得不使用Maven下载源代码并调试有助于理解log4j2的依赖类。 它们被列在log4j-api中:
com.fasterxml.jackson.databind.ObjectMapper
com.fasterxml.jackson.databind.JsonNode
com.fasterxml.jackson.core.JsonParser
com.fasterxml.jackson.dataformat.yaml.YAMLFactory
添加Test Dependencies的依赖关系映射将不会有前两个类。 因此,添加log4j-api依赖项以使yaml配置正常工作:
com.fasterxml.jackson.core
jackson-databind
2.8.6
您可以通过参考MVN存储库中log4j-api版本项的Test Dependencies部分来添加版本。 例如。 对于log4j-api的2.8.1版本,请参阅此链接并找到jackson-databind版本。
此外,您可以使用以下Java代码检查类路径中是否有类:
System.out.println(ClassLoader.getSystemResource("log4j2.yml")); //Check if file is available in CP
ClassLoader cl = Thread.currentThread().getContextClassLoader(); //Code as in log4j2 API. Version: 2.8.1
String [] classes = {"com.fasterxml.jackson.databind.ObjectMapper",
"com.fasterxml.jackson.databind.JsonNode",
"com.fasterxml.jackson.core.JsonParser",
"com.fasterxml.jackson.dataformat.yaml.YAMLFactory"};
for(String className : classes) {
cl.loadClass(className);
}