gpt4 book ai didi

apache-flex - 有没有办法向 Flex Air 应用程序添加详细的远程崩溃报告?

转载 作者:行者123 更新时间:2023-12-03 11:20:30 25 4
gpt4 key购买 nike

我将很快发布我的 Air/Flex 应用程序,但我很确定在 Air 可用的各种平台上可能会出现一些错误。所以我想知道是否有一种方法可以实现一种机制,每次应用程序崩溃时都会向远程服务器发送错误报告,记录错误发生的位置?这样我可能会发现否则会被忽视的错误。

最佳答案

Flash 10 和 AIR2 现在支持全局错误处理。更多信息:http://help.adobe.com/en_US/air/reference/html/flash/events/UncaughtErrorEvent.html

使用这种功能来捕获未捕获的异常;您可以将跟踪提交到一些专门设置的 Web 服务以获取它们。使用 Google App Engine 非常适合此目的,因为它已经具有日志记录功能,可以从调用应用程序的客户端获取各种元数据。此外,如果您的日志由于某种原因变得庞大 - 至少您不必担心存储它们。谷歌为你做到了:)

我已经设置了如下所述的服务(假设它有一些缺陷,特别是任何人都可以调用它并添加“跟踪”,但您可以添加一些共享 key 并通过 HTTPS 发布以具有一些微小的安全措施)。

App Engine 日志服务

#!/usr/bin/env python

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

class MainHandler(webapp.RequestHandler):

def post(self):
import logging

if self.request.get('trace'):
logging.error(self.request.get('trace')) #Adds a row to GAE:s own logs :)
self.response.out.write('trace logged')
else:
set_status(501)

def get(self):
""" Kill this function when done testing """
test_form = """
<form action="/" method="POST">
<textarea name="trace"></textarea>
<input type="submit">
</form>"""

self.response.out.write(test_form)

def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=False)
util.run_wsgi_app(application)

if __name__ == '__main__':
main()

我写了一个小 AIR 应用程序,其中包含这个小测试功能,它只是 POST:ed 指定参数“trace”的应用程序引擎服务。

发布到日志服务 (ActionScript)
private function postToLogger(event:MouseEvent):void
{
var service:HTTPService = new HTTPService();

var parameters:Object = {'trace': "omg something went wrong"};
service.url = "https://YOURSUPERSIMPLELOGGINGSERVICE.APPSPOT.COM";
service.method = HTTPRequestMessage.POST_METHOD;
service.resultFormat = HTTPService.RESULT_FORMAT_E4X;
service.addEventListener("result", onSuccess);
service.addEventListener("fault", onError);
service.send(parameters);
}

最后,这就是它在日志、大量元数据以及您在 AIR 应用程序中捕获的跟踪的外观。

Google App Engine Logging feature

关于apache-flex - 有没有办法向 Flex Air 应用程序添加详细的远程崩溃报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com