Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/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
如何在springframework的JSON配置中配置log4j 2?_Json_Xml_Spring_Log4j2 - Fatal编程技术网

如何在springframework的JSON配置中配置log4j 2?

如何在springframework的JSON配置中配置log4j 2?,json,xml,spring,log4j2,Json,Xml,Spring,Log4j2,我想调试springframework,了解在Restcontroller中路由请求时发生了什么我已经定义了如下所示的JSON配置,但这对我不起作用 { "configuration": { "appenders": { "Console": { "name": "consoleAppender", "target":"SYSTEM_OUT", "Pa


我想调试springframework,了解在Restcontroller中路由请求时发生了什么
我已经定义了如下所示的JSON配置,但这对我不起作用

 {
    "configuration": {
        "appenders": {
            "Console": {
                "name": "consoleAppender",
                "target":"SYSTEM_OUT",
                "PatternLayout": {
                    "pattern": "%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p [%c{1}:%t]:%L - %m%n"
                }
            }
        },
        "loggers": {
            "root": {
                "level": "info",
                "appender-ref": [{ "ref": "consoleAppender" }]
            },
            "logger":[{
                "name":"org.springframework", 
                "level": "debug",
                "appender-ref": [{ "ref": "consoleAppender" }]
            }]
        }
    }
}
如果我在这里做错了,请告诉我。

另一个问题是,使用JSON或XML配置log4j的正确方法是什么?

下面的配置用于log4j框架。其描述基于XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
        <param name="Facility" value="LOCAL0"/>
        <param name="FacilityPrinting" value="false"/>
        <param name="SyslogHost" value="localhost"/>
        <param name="Threshold" value="INFO"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [WhereRU][%t|%c{1}] %L %M %m\n"/>
        </layout>
    </appender>
    <appender name="SERVER_DEBUG" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="DatePattern" value="'-'yyyy-MM-dd'.log'"/>
        <param name="File" value="/var/log/testing/testing-debug"/>
        <param name="Threshold" value="DEBUG"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [WhereRU][%t|%c{1}] %L %M %m\n"/>
        </layout>
    </appender>
    <appender name="SERVER_ERROR" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="DatePattern" value="'-'yyyy-MM-dd'.log'"/>
        <param name="File" value="/var/log/testing/testing-error"/>
        <param name="Threshold" value="ERROR"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [WhereRU][%t|%c{1}] %L %M %m\n"/>
        </layout>
    </appender>
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [WhereRU][%t|%c{1}] %L %M %m\n" />
        </layout>
    </appender>

    <logger name="com.testing" additivity="false">
        <level value="DEBUG"/>
         <appender-ref ref="SYSLOG"/>
         <appender-ref ref="SERVER_DEBUG"/>
         <appender-ref ref="SERVER_ERROR"/>
         <appender-ref ref="STDOUT" />
    </logger>

    <logger name="org.springframework" additivity="false">
        <level value="ERROR"/>
         <appender-ref ref="SERVER_ERROR"/>
    </logger>

    <logger name="org.apache" additivity="false">
        <level value="ERROR"/>
         <appender-ref ref="SERVER_ERROR"/>
    </logger>

    <logger name="org.springframework.integration">
        <level value="info" />
    </logger>

    <logger name="org.springframework.integration.samples">
        <level value="info" />
    </logger>

    <!-- Everything else to catalina.out -->
    <root>
        <level value="ERROR"/>
        <appender-ref ref="STDOUT" />
        <appender-ref ref="SERVER_DEBUG" />
        <appender-ref ref="SERVER_ERROR" />
    </root>
</log4j:configuration>


希望这些东西能解决您的问题。

您共享的内容似乎都是log4j 1.x配置。我需要带有json和xml的log4j 2.x配置。这里是log4j2的迁移链接,您可以使用JSON或XML。我建议看一下单元测试。有许多示例配置文件。至于它不起作用,1。使用appenderRef而不是appender-ref.2。您不需要“[”或“]“关于引用,因为只有一个引用。显然,如果您没有包含其他jackson xxx依赖项,那么使用xml dom解析器解析json配置时会出现问题,这在log4j文档中完全没有提及。我不知道到底什么对你不起作用,但我想我会提到这一点,以防其他人击中它。有关更多信息,请参见此处的答案: