We have a bit old J2EE application that use slf4j and log4j2 for logging. Dependencies looks like below.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
log4j2.xml looks like following
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="CA_OUTPUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %X{user} %X{userIp} %p %c: %m%n"/>
</Console>
<File name="LOG_OUTPUT" fileName="${sys:xyz.logs.home}/xyz.log"
append="true">
<PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="CA_OUTPUT"/>
<AppenderRef ref="LOG_OUTPUT"/>
</Root>
<Logger name="org.apache.axis2.enterprise" level="FATAL">
<AppenderRef ref="LOG_OUTPUT"/>
</Logger>
<Logger name="de.hunsicker.jalopy.io" level="FATAL">
<AppenderRef ref="LOG_OUTPUT"/>
</Logger>
<Logger name="httpclient.wire.header" level="FATAL">
<AppenderRef ref="LOG_OUTPUT"/>
</Logger>
<Logger name="org.apache.commons.httpclient" level="FATAL">
<AppenderRef ref="LOG_OUTPUT"/>
</Logger>
</Loggers>
</Configuration>
We have a small swing application to mimic the web application for development purpose. The problem is I want to set the rool log level by the command line. I tried many ( eg -Dorg.apache.logging.log4j.level=DEBUG, -Dorg.slf4j.simpleLogger.defaultLogLevel=debug) but nothing did the trick.
Of course I can set it programmatically.
Configurator.setRootLevel(Level.DEBUG);
But I would like to do it by passing a JVM argument. Thanks in advance