I'm attempting to programmatically override the levels of my log4j2 loggers on the fly, but it doesn't seem to be working. Can anyone point out what I might be doing wrong? This is the code that I am currently using to attempt to reset the levels.
final static Level REQUEST = Level.forName("REQUEST", 450);
errorLog.info("Showing Requests in logs");
LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
LoggerConfig loggerConfig = config.getLoggerConfig("console");
loggerConfig.setLevel(REQUEST);
LoggerConfig loggerConfigFile = config.getLoggerConfig("file-log");
loggerConfigFile.setLevel(REQUEST);
ctx.updateLoggers();
My configuration file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Properties>
<Property name="log-path">logs</Property>
</Properties>
<Appenders>
<RollingFile name="file-log" fileName="${log-path}/DataAdapter.log"
filePattern="${log-path}/DataAdapter-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{MM-dd-yyyy HH:mm:ss} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%-5level] %d{MM-dd-yyyy HH:mm:ss} %c{1} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="joy.com.DataAdapter" level="trace" additivity="false">
<appender-ref ref="file-log" level="info"/>
</Logger>
<Root level="trace" additivity="false">
<appender-ref ref="console" level="info"/>
<appender-ref ref="file-log" level="info"/>
</Root>
</Loggers>
</Configuration>