別の答え。
メソッドを使用して、log4j にヘルパー クラスを除外するように依頼することができます。
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 は通常どおり動作し、スタック トレースが必要ない場合は計算を回避します。