log4j2의 레이아웃을 XMLLayout으로 설정하려고합니다.layout.XmlLayout 클래스에서 팩토리 메소드를 호출 할 수없는 이유는 무엇입니까?
나는 POM jackson-annotations, jackson-module-jaxb-annotations, jersey-media-json-jackson에 포함되어 있습니다. 또한 PatternLayout을 사용하여 콘솔에 로그하거나 파일을 모두 작동시킬 때도 마찬가지입니다. XMLLayout을 사용하고자 할 때 아래와 같은 예외가 발생합니다. 또한이 스레드에있는 거의 동일한 예외가 있습니다 : Log4j2 SyslogAppender not working,하지만 해결 방법은 Appender 경우에만 해당하며 mdcId 특성이 없으므로 작동하지 않는다고 생각합니다.
XML
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<XMLLayout />
<!--PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/-->
</Console>
<!--Flume name="EventLogger" compress="true" type="Embedded">
<Agent host="192.168.1.50" port="41414"/>
<RFC5424Layout enterpriseNumber="18060" includeMDC="true" appName="MyApp"/>
</Flume-->
<File name="MyFile" fileName="logs/app.log">
<!--XMLLayout /-->
</File>
</Appenders>
<Loggers>
<Logger name="EventLogger" level="warn">
<AppenderRef ref="console"/>
</Logger>
<Root level="warn" additivity="false">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
예외
2014-11-26 09:22:45,975 ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.layout.XmlLayout for element XMLLayout. java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:135)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:766)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:706)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:698)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:698)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:358)
원인 예외가 있습니까? (InvocationTargetException의 원인) –