При использовании MDC с log4j в простом коде Java (JDK-9) я не получаю никакого значения для поля, определенного MDC.Ниже приведены мой код Java и файл log4j.properties.Java-код:
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
public class Logging {
public static void main(String[] args) {
Logger log = Logger.getLogger("Logging.class");
String a="BOB";
try {
log.info("Hello");
MDC.put("userid",a);
log.debug("Texting 1");
} catch(Exception e) {
log.error(e.getMessage());
} finally {
MDC.remove("userid");
} } }
log4j.properties:
log4j.rootLogger=DEBUG,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%-4r [%t] %5p %c %x - %m - [%X{userid}]%n
Вывод:
0 [main] INFO Logging.class - Hello - []
4 [main] DEBUG Logging.class - Texting 1 - []