如何在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文档中完全没有提及。我不知道到底什么对你不起作用,但我想我会提到这一点,以防其他人击中它。有关更多信息,请参见此处的答案: