MDC 登录核心 Java
MDC logging in Core Java
在简单的 java(JDK-9) 代码中将 MDC 与 log4j 结合使用时,我没有获得 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 - []
在您的代码中,只需尝试更改顺序然后尝试。我遇到了同样的问题,我确实更改了顺序并尝试过,它对我有用。让我分享我的代码。
public class MyMDC {
public static void main(String[] args) {
Logger log = Logger.getLogger(MyMDC.class);
String a="BOB";
try {
MDC.put("userid",a);
log.info("Hello");
log.debug("Texting 1");
}
catch(Exception e) {
log.error(e.getMessage());
}
finally {
MDC.remove("userid");
}
}
在简单的 java(JDK-9) 代码中将 MDC 与 log4j 结合使用时,我没有获得 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 - []
在您的代码中,只需尝试更改顺序然后尝试。我遇到了同样的问题,我确实更改了顺序并尝试过,它对我有用。让我分享我的代码。
public class MyMDC {
public static void main(String[] args) {
Logger log = Logger.getLogger(MyMDC.class);
String a="BOB";
try {
MDC.put("userid",a);
log.info("Hello");
log.debug("Texting 1");
}
catch(Exception e) {
log.error(e.getMessage());
}
finally {
MDC.remove("userid");
}
}