如何在Google App Engine应用日志中显示异常完整堆栈跟踪?

时间:2012-08-17 05:58:35

标签: google-app-engine logging exception-handling

在Google App Engine上部署的应用程序中从数据存储区中分离对象时,我遇到了“无法分离”的异常,我无法在我的开发框中重现该异常。分离操作是服务器端的,因此我唯一的信息是应用程序日志文件中的异常日志。但是,堆栈跟踪被省略了:例如,最深的内部异常以“...... 36多”结束。

如何调整应用日志记录的详细程度,以包含完整的,非省略的堆栈跟踪?

2 个答案:

答案 0 :(得分:7)

您可以做的是在记录异常时将Throwable添加为参数。即:

 Logger log = Logger.getLogger(YourClass.class.getName());
 .....
 }catch (final Throwable e){
       log.log(Level.SEVERE, e.toString(), e);
 }

这将在GAE的日志上打印出一个很好的堆栈跟踪。

这样您就不必更改全局日志级别。

答案 1 :(得分:3)

您可以调整的内容很少:

1)在war\WEB-INF\logging.properties文件中。将.level值更改为更低的级别,例如DEBUG。

2)在您的Java代码中,查看将问题代码封装在try/catch中,以便您可以控制它。

3)在catch块中,查看通过ex.printStackTrace()记录异常数据,其中ex是异常对象。

相关问题