Log4j2无法使用json配置文件 [英] Log4j2 not working with json config file

查看:646
本文介绍了Log4j2无法使用json配置文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

似乎log4j试图通过XML解析器解析.json配置文件,但为什么?

It seems like log4j is trying to parse .json config file by XML parser, but why?

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

I set log4j config file by command line argument:

-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

我的lib文件夹中的Jars:

Jars in my lib folder:


  • 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-runti me-sources.jar

  • kotlin-runtime.jar

  • log4j-api-2.3.jar

  • log4j-core-2.3.jar

  • log4j-slf4j-impl-2.3.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

这篇关于Log4j2无法使用json配置文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆