I have log4j2 xml configuration but I want to convert this configuration as programaticly
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.x/config" packages="org.graylog2.log4j2">
<Appenders>
<GELF name="gelfAppender" server="graylog.XXX.com" port="12212" hostname="wskurumsaltest.XXX.com" protocol="UDP" includeThreadContext="true">
<KeyValuePair key="grayloggroup" value="TEST_GROUP" />
<KeyValuePair key="application" value="TEST" />
<KeyValuePair key="environment" value="TEST" />
<PatternLayout pattern="%X{applicationNames} - %m%n"/>
</GELF>
<RollingFile name="activityStatusFileAppender"
fileName="${filePath}/activityStatus.out"
<PatternLayout>
<Pattern>%d - %m%n</Pattern>
</PatternLayout>
</RollingFile>
</Appenders>
<Logger name="activityStatusFileLogger" level="debug">
<AppenderRef ref="activityStatusFileAppender" />
<AppenderRef ref="gelfAppender" />
</Logger>
</Loggers>
</Configuration>
I want to add gelFAppender to "activityStatusFileLogger" as programmacticly not using xml
GelfAppender gelfAppender = new GelfAppender();
gelfAppender.setGraylogHost("graylog.xxx.com");
gelfAppender.setGraylogPort(12212);
gelfAppender.setOriginHost("graylog.xxx.com");
gelfAppender.setAdditionalFields("{\"grayloggroup\": \"group\", \"application\": \"test\", \"environment\": \"test\"}");
gelfAppender.activateOptions();//
Logger x= LogManager.getLogger("activityStatusFileLogger");
x.addAppender(gelfAppender);
But LogManager.getLogger() not contains "addAppenders()" method. LogManager is include in log4j-api-2.10.0. jar and org.apache.logging.log4j package.