Предполагая, что вы используете log4j 1, я не думаю, что с вашей конфигурацией что-то не так.
Я использовал вашу конфигурацию вместе со следующим приложением:
package log4j;
import org.apache.log4j.Logger;
import java.io.IOException;
public class App {
private static final Logger LOG = Logger.getLogger(App.class);
private static Throwable nestedThrowable() {
return new Throwable("Thrown error", new IOException("Some Error"));
}
public static void main(String[] args) {
LOG.error("test error", nestedThrowable());
}
}
Это привело к следующему выводу:
2020-01-20 15:04:02 ERROR App: - test error
java.lang.Throwable: Thrown error
at log4j.App.nestedThrowable(App.java:11)
at log4j.App.main(App.java:15)
Caused by: java.io.IOException: Some Error
Таким образом, я предлагаю убедиться, что Logger API используется правильно, чтобы гарантировать, что Throwable
передается в качестве последнего аргумента, например error(Object message, Throwable thrown)