替代答案。
可以使用该方法要求 log4j 排除帮助程序类
类别.log(字符串调用方FQCN, 优先级, 对象消息, 可抛出 t)
并将帮助程序类指定为“调用方FQCN”。
例如,下面是一个使用帮助程序的类:
public class TheClass {
public static void main(String...strings) {
LoggingHelper.log("Message using full log method in logging helper.");
LoggingHelper.logNotWorking("Message using class info method");
}}
和帮助程序的代码:
public class LoggingHelper {
private static Logger LOG = Logger.getLogger(LoggingHelper.class);
public static void log(String message) {
LOG.log(LoggingHelper.class.getCanonicalName(), Level.INFO, message, null);
}
public static void logNotWorking(String message) {
LOG.info(message);
} }
第一种方法将输出预期的结果。
Line(TheClass.main(TheClass.java:4)) Message using full log method in logging helper.
Line(LoggingHelper.logNotWorking(LoggingHelper.java:12)) Message using class info method
使用此方法时,Log4j将照常工作,如果不需要,可以避免计算堆栈跟踪。