我试图避免一大堆手动检查来调试我的代码,即使错误很可能会变成错误或类似的东西。我正在使用jQuery对Struts 2操作进行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获取更多信息?
答案 0 :(得分:1)
活动似乎已经死了,所以我会将我的答案从评论转到答案部分。
好的,我解决了具体案例。我的SqlDeveloper阻止了myBatis。我关闭了我的SqlDeveloper,因为我打算离开这一天,并且Tomcat在无人看管的情况下进行了一个小时之后的行动,从那里开始删除了我想要删除的2个音符。所以我理解为什么在这种情况下不会有Tomcat日志,MyBatis仍在尝试完成原始更新操作。