エラーがタイプミスまたはそのようなばかげたものであることが判明する可能性が高い場合でも、コードをデバッグするために大量の手動検査を回避しようとしています。jQueryを使用してStruts2アクションに対してajax()呼び出しを行っていますが、実行が停止しています。Javascriptレベルでは、「手がかりがありません。あなたは自分の開発者です」という非常にわかりやすい500エラーが表示されます。つまり、Struts2のアクションレベルで行っているのは、すべてのコマンドの後にlog.info行を配置することです。これが私がデモンストレーションの目的で持っているものです:
log.info("Trying to process " + entry.trim());
int noteIndex = Integer.valueOf(entry.trim());
log.info("Note index is " + noteIndex + " in a list of size " + iss.getNotes().size());
Integer noteId = iss.getNoteByIndex(noteIndex).getIssueNoteId();
log.info("Noteid is " + noteId);
service.deleteNote(noteId);
log.info("Note " + noteId + " has been deleted");
私のTomcatログは私に与えます:
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:54) - Entering delete note with 2,3
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:61) - Trying to process 2
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:63) - Note index is 2 in a list of size 5
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:65) - Noteid is 80686
これは、私のStruts 2サービスの呼び出しであるdeleteNoteが、myBatisを介して実際にソフト削除(更新ステートメント)を実行していることを示しています。ただし、明らかな障害はありません。通常、myBatisを間違えると、myBatisから通知が届き(ログは非常に役立つことがよくあります)、間違いを修正します。myBatisをINFOレベルに設定しました。
では、Tomcatをシャットダウンしているのは何ですか?この機会だけでなく、デバッグが必要な将来のajax()呼び出しについても、Tomcat / Log4Jからより多くの情報を取得するにはどうすればよいですか?