替代答案。
可以通过使用方法要求log4j排除helper类
Category.log(String callerFQCN, Priority level, Object message, Throwable t)
并将助手类指定为“callerFQCN”。
例如,这是一个使用助手的类:
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)) 在日志帮助程序中使用完整日志方法的消息。
Line(LoggingHelper.logNotWorking(LoggingHelper.java:12)) 使用类信息方法的消息
使用此方法时,Log4j 将照常工作,如果不需要,则避免计算堆栈跟踪。