2013-04-04 123 views
1

在我目前正在使用的应用程序(2.7运行时)中,我试图确保API级别的异常(即不是我的代码)在我的应用程序内正确处理。但是,Google/AppEngine似乎在内部处理这些例外情况,并且不会使它们冒泡。例如,使用Thing这是一个预先定义的ndb.ModelAppEngine Python API异常处理

t = Thing(id=1,name='thingy') 
try: 
    t.put() 
except Exception as e: 
    self.log(e) 
    self.abort(500) 

万一的东西就会出差错与put()我也没有办法赶上/日志事件 - 或者是那里?

将数据存储到blobstore时也会发生类似的情况,在这种情况下,异常显然会在内部被捕获并引发,并且没有机会记录这些异常。

也许我错过了一个关键点?我浏览过API文档,但是服务引发的异常以及如何捕获它们似乎并不是文档团队的优先考虑事项。

回答

1

实际上App Engine会记录每一个请求。只需进入应用程序的仪表板,然后点击日志

如果你想记录自己的东西,你应该使用日志库,你可以在documentation中阅读更多关于它的信息。

因此,您应该使用logging.error而不是self.log

+0

self.log是我创建的使用记录模块的方法。 – rdodev 2013-04-04 16:33:51

+0

@Syrahn你还可以在你的问题中包含'Thing class'和'self.log'的代码来调查更多? – Lipis 2013-04-04 19:35:50