I've installed log4j2 and set up a properties file, yet I can't get log4j2 output debug information to the console. I'm suspecting my configuration is wrong.
Here's my source code:
package com.smt.trimble.poc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class NMEAReader {
private static final String hostName = "192.168.0.2";
private static final int portNumber = 5017;
private static Socket nmeaSocket;
private static final Logger logger = LogManager.getLogger(NMEAReader.class);
public static void main(String[] args) {
try {
nmeaSocket = new Socket(hostName, portNumber);
logger.debug("Creating socket");
PrintWriter out = new PrintWriter(nmeaSocket.getOutputStream(), true);
BufferedReader in =
new BufferedReader(new InputStreamReader(nmeaSocket.getInputStream()));
String userInput;
while (true) {
logger.debug("Reading Data");
userInput = in.readLine();
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
} catch (Exception e){
System.out.println("An error occured, " + e.getMessage());
}
}
}
And here's my log4j2 configuration file:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="Debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
Log4J2 works, as I'm able to see output when I set logger.debug
to logger.error
.
I'm probably missing something trivial.
edit:
I've updated my properties file to
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-level %logger{36} - %msg%n"/>
<Filters>
<ThresholdFilter level="debug"/>
</Filters>
</Console>
</Appenders>
<Loggers>
<Root level="Debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Changing Configuration level to trace also didn't produce any further output. Still, when I change logger.debug
to logger.error
, I can see log4j2 output:
But nothing when I set things to logger.debug: