【问题标题】:centralized logging with flex使用 flex 进行集中式日志记录
【发布时间】:2011-09-01 10:03:33
【问题描述】:

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

也许我可以将消息发送到填充后端数据库的网络服务。我不知道这是否是推荐的方式。

你如何集中存储你的日志信息?

提前致谢 弗兰克

【问题讨论】:

    标签: apache-flex logging flash-builder


    【解决方案1】:

    Log4Fx 在 Flex 日志记录的基础上提供了一些灵活的日志记录解决方案以及几个开箱即用的服务器日志记录解决方案。您可以阅读更多详细信息here。 Log4Fx 是免费和开源Clear Toolkit 的一部分。

    【讨论】:

    • 你有一些使用 log4fx 的经验吗?我之前读过这些东西,我明白,只有连接控制台才能进行日志记录。我需要的是永久日志记录,因此网络服务器上的一块应该接收消息并将其存储到一个地方(数据库或文件)。你知道,如果使用 log4fx 可以做到这一点?
    • 我是 Log4Fx 客户端代码的作者之一 :) 你可以调整服务器代码来做你想做的事(它包括 Socket 日志目标以记录到可以自定义的 servlet) .要关闭注销,您可以评论日志记录标签。唯一的问题是如果您使用的是 Flex 4。Log4Fx 似乎不支持它。
    • 哇,你有知识了。真的,log4fx 不支持 flex4 吗?我正在使用 flex4.5,我认为,这也不支持。真可惜,所以这不是解决方案。
    • 这个解决方案是在 2006 年开发的,并没有切换到 Flex 4。只要项目是开源的,如果您有兴趣可以提供帮助:)
    【解决方案2】:

    据我所知,没有现成的方法可以做到这一点。

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

    我对该日志类使用单例模式。

    我用它来记录 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 );
      }
    

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 2012-06-21
      • 2012-05-11
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多