Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2不使用json配置文件_Java_Json_Intellij Idea_Log4j_Kotlin - Fatal编程技术网

Java Log4j2不使用json配置文件

Java Log4j2不使用json配置文件,java,json,intellij-idea,log4j,kotlin,Java,Json,Intellij Idea,Log4j,Kotlin,看起来log4j试图通过XML解析器解析.json配置文件,但为什么呢 我通过命令行参数设置log4j配置文件: -Dlog4j.configurationFile=src/log4j2.json 文件内容: { "configuration": { "appenders": { "Console": { "name": "Console", "target": "SYSTEM_OU

看起来log4j试图通过XML解析器解析.json配置文件,但为什么呢

我通过命令行参数设置log4j配置文件:

-Dlog4j.configurationFile=src/log4j2.json
文件内容:

{
    "configuration": {
        "appenders": {
            "Console": {
                "name": "Console",
                "target": "SYSTEM_OUT",
                "PatternLayout": {
                    "pattern": "%date %thread %logger %message"
                }
            }
        },
        "loggers": {
            "root": {
                "level": "debug",
                "appender-ref": {
                    "ref": "Console"
                }
            }
        }
    }
}
我得到的是:

[Fatal Error] log4j2.json:1:1: Content is not allowed in prolog.
ERROR StatusLogger Error parsing D:\Dev\HDelphiCrawler\src\log4j2.json org.xml.sax.SAXParseException; systemId: file:///D:/Dev/HDelphiCrawler/src/log4j2.json; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)
    at org.apache.logging.log4j.core.config.xml.XmlConfiguration.<init>(XmlConfiguration.java:140)
    at org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:44)
    at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:410)
    ....and so on...
ERROR StatusLogger No logging configuration
[Fatal Error]log4j2.json:1:1:prolog中不允许包含内容。
错误状态记录器错误解析D:\Dev\HDelphiCrawler\src\log4j2.json org.xml.sax.saxpasseeption;系统ID:file:///D:/Dev/HDelphiCrawler/src/log4j2.json; 行号:1;列数:1;prolog中不允许包含内容。
位于com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
在com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)
位于org.apache.logging.log4j.core.config.xml.XmlConfiguration.(XmlConfiguration.java:140)
位于org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:44)
位于org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:410)
等等
错误状态记录器无日志记录配置
“我的库”文件夹中的JAR:

  • hamcrest-junit-2.0.0.0.jar
  • jackson-annotations-2.6.1.jar
  • jackson-core-2.6.1.jar
  • jackson-databind-2.6.1.jar
  • java-hamcrest-2.0.0.0.jar
  • junit-4.12.jar
  • kotlin-reflect.jar
  • kotlin-runtime-sources.jar
  • kotlin-runtime.jar
  • log4j-api-2.3.jar
  • log4j-core-2.3.jar
  • log4j-slf4j-impl-2.3.jar

您可以使用系统属性
log4j.configurationFactory

-Dlog4j.configurationFactory=org.apache.logging.log4j.core.config.json.JsonConfigurationFactory

您可以使用系统属性
log4j.configurationFactory

-Dlog4j.configurationFactory=org.apache.logging.log4j.core.config.json.JsonConfigurationFactory

即使已经有一个公认的答案,我也会发布我的解决方案。也许这会在将来帮助其他人

它对我不起作用的原因是我没有可用的
jackson核心
jackson数据绑定
库。在我加上

compile 'com.fasterxml.jackson.core:jackson-core:2.8.7'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.2'

在我的
build.gradle
文件中,一切正常。

即使已经有一个公认的答案,我也会发布我的解决方案。也许这会在将来帮助其他人

它对我不起作用的原因是我没有可用的
jackson核心
jackson数据绑定
库。在我加上

compile 'com.fasterxml.jackson.core:jackson-core:2.8.7'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.2'

在我的
build.gradle
文件中,一切正常。

我建议添加-Dlog4j2.StatusLogger.level=DEBUG。它应该打印一些可能有助于识别问题的调试消息。我建议添加-Dlog4j2.StatusLogger.level=DEBUG。它应该打印一些可能有助于识别问题的调试消息。