私の目的のために、ログ4j 1.2.16とルートロガーをEnhancedPatternLayoutで使用しています。
コードは次のようなものです (ScheduledFuture で例外をキャッチする):
try
{
_task.run();
}
catch(RejectedExecutionException ree) {}
catch (Exception e)
{
log.error("Exception in a scheduled task:", e);
}
そして、それが次に起こることです。いくつかの種類の例外は、ログ ファイルにスタック トレースを残しません。
NPE の通常のログは次のとおりです。
[24.11.12 11:08:31] Exception in a scheduled task:
java.lang.NullPointerException
at com.test.server.taskmanager.TestTask$1.run(TestTask.java:116)
at com.test.server.threading.RunnableWrapper.execute(RunnableWrapper.java:65)
at com.test.server.threading.RunnableWrapper.run(RunnableWrapper.java:57)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
.....
次は ClassCastException です。
[24.11.12 11:16:37] ...
[24.11.12 11:18:30] Exception in a scheduled task:
java.lang.ClassCastException
[24.11.12 11:18:37] ...
[24.11.12 11:20:37] ...
[24.11.12 11:21:51] Exception in a scheduled task:
java.lang.ClassCastException
[24.11.12 11:22:37] ...
わかりません.. ClassCastException のスタックトレースはどこにありますか?
なぜこれが起こるのか、それを修正する方法はありますか?