2011-09-01 79 views
3

我们正在开发一个应用程序,我们需要这个和进一步的项目集中记录。我知道flex builder 4.5中有一个log api版本。而爱人有一个日志目标。我发现的只是如何将这些登录信息发送到跟踪控制台。 但我正在寻找发送日志文件到我的服务器。用flex集中记录

也许我可以将消息发送到一个web服务,其在后端填充数据库。我不知道这是否是一种推荐方式。

如何将日志信息集中存储?

在此先感谢 弗兰克

回答

0

没有一个开箱即用的方式,据我知道做到这一点。

我有了通过远程对象到服务器的连接日志类。这也可以是一个Web服务。

我使用该日志类Singleton模式。

我用它来记录AIR应用程序中的错误。我有一个全局错误处理程序来捕获未处理的异常。然后我调用一个只调用远程对象的日志类,并将错误记录到日志表中。

日志类具有足够的灵活性来处理调试和信息报表。我几乎复制log4net的方式来记录错误,它允许我指定类型(调试,错误,信息等)和消息。您可以重载该方法,以便您可以发送更多信息(如消息,已用时间,用户ID,类等)。

下面是我们用来记录错误的功能:

public function LogApplicationError(memberID:int, logger:String, message:String, name:String, stackTrace:String, responder:IResponder = null):void 
    { 
     var asyncToken:AsyncToken = remoteObject.LogApplicationError(memberID, logger, message, name, stackTrace); 

     trace("Member ID : " + memberID.toString()); 
     trace("Logger  : " + logger); 
     trace("Message  : " + message); 
     trace("Name  : " + name); 
     trace("Stack Trace : " + stackTrace); 

     if(responder != null) 
      asyncToken.addResponder(responder); 
    } 
+0

你有可能给我一些代码片段吗? – Frank

+0

非常好,谢谢! – Frank

1

Log4Fx提供了几个外的现成服务器日志记录解决方案上的Flex记录的顶部了一些灵活的日志解决方案。您可以阅读更多详情here。 Log4Fx是免费和开放源码Clear Toolkit的一部分。

+0

你有没有使用log4fx的经验。我之前阅读过这些东西,而且我明白,只有在与控制台连接时才能进行日志记录。我需要的是永久性日志记录,因此Web服务器上的一块应该接收消息并将其存储到一个地方(数据库或文件)。你知道吗,如果这可能与log4fx? – Frank

+0

我是Log4Fx的客户端代码的作者之一:)您可以调整服务器代码以执行您想要的操作(它包括'Socket'日志目标以登录到可以自定义的servlet)。要关闭注销,您可以评论日志标记。唯一的问题是如果你使用Flex 4.看来Log4Fx不支持它。 – Constantiner

+0

哇,所以你有知识。真的,log4fx不支持flex4?我使用flex4.5,我认为,这也不被支持。真可惜,所以这不是一个解决方案。 – Frank