I am trying to use StringWriter
as Target
for WriterAppender
. Once I
have my logs written to StringWriter
, I want to send these logs as
response of my method.
My current log4j2.xml -
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
<Appenders>
<Writer name="MyAppender" target="StringWriter">
<JsonLayout/>
</Writer>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="MyAppender"/>
</Root>
</Loggers>
</Configuration>
This gives me below error -
2017-08-19 20:07:49,359 main ERROR Writer contains invalid attributes "name", "target"
2017-08-19 20:07:49,359 main ERROR appender Writer has no parameter that matches element JsonLayout
2017-08-19 20:07:49,359 main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.WriterAppender, element Writer. java.lang.NullPointerException
at org.apache.logging.log4j.core.appender.WriterAppender.getManager(WriterAppender.java:168)
at org.apache.logging.log4j.core.appender.WriterAppender.access$000(WriterAppender.java:35)
at org.apache.logging.log4j.core.appender.WriterAppender$Builder.build(WriterAppender.java:56)
I am looking for correct XML configuration (preferred)
If XML is not possible for WriterAppender
then programmatic configuration.