0

我有一个 GAE 应用程序的生产问题。该问题似乎仅与某些用户有关。

是否有可能将本地调试器连接到 prod 版本?我想避免将产品数据复制到开发服务器。

谢谢 !

4

3 回答 3

2

随着Google Cloud Debugger的引入,这种情况在几天前有所改善

本周早些时候,在 Google Cloud Platform Live 上,我们推出了 Cloud Debugger 测试版,它可以更轻松地对生产中的应用程序进行故障排除。现在您可以简单地选择一行代码,设置一个观察点,调试器将从下一个请求返回局部变量和完整的堆栈跟踪,该请求在您的服务的任何副本上执行该行。设置时间为零,没有复杂的配置,并且对您的用户没有明显的性能影响。

这是博客文章

这是信息

于 2014-11-11T10:03:40.967 回答
1

不可能,您只能使用日志进行调试。

于 2012-07-31T13:28:19.353 回答
0

我设法解决了这个问题。问题是一个程序抛出异常而我没有正确捕获它。代码是

catch (Exception e) {
  e.printStackTrace();
}

在开发平台上,控制台抛出异常。生产中的问题是它没有出现在 GAE 控制台中。这有两个非常糟糕的结果:

--> 1) 最终用户不知道交易没有成功结束

--> 2) 管理员不知道出现了问题,也没有办法调试

==>

因此,我将代码替换为

catch (Exception e) {
final Logger log = Logger.getLogger(InternalServiceImpl.class.getName());
log.severe("Problem while updating XXX record : " + e.getLocalizedMessage());
updatedRecord.setRPCResult(DB_PROBLEM); // This is specific to my application to notify the end user
} 

我确实修改了代码重新启动了应用程序,发现问题是事务中的资源争用。

真是一个愚蠢的初学者错误。

于 2012-07-31T16:13:07.993 回答