1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...
Log : use Log in flex3

在大型商业项目开发中,bug在所难免。关键是在bug出现后,要迅速知道这个bug是由那个模块,那个类产生的。在开发过程中,没有理由不把开发日志记录下来,包括Fatal,error,warm,info,debug等信息。这些信息最好可以查找,检索,这对于后期项目优化尤其重要。本文主要介绍如何在flex3开发里记录开发日志。

所幸flex sdk提供了mx.logging.*包用于在运行时记录开发日志,在flex3如何呢?简要步聚如下:

一、初始化,并添加TraceTarget。代码示例:

var traceTarget : TraceTarget = new TraceTarget();
traceTarget.includeCategory = true;
traceTarget.includeDate = true;
traceTarget.level = LogEventLevel.ALL;//设置记录类型,ALL为全部记录。
//traceTarget.filters = ["somecate"];//此步没有必要,稍后陈述弊见。
Log.addTarget(traceTarget);

二、设置LogEvent监听

log.addEventListener(LogEvent.LOG, logHandler);

三、发送日志记录到server
当有日志被记录时,则触发logHandler,在logHandler中收集日志的类别,信息主体,等级,发送到服务端。

private function logHandler(event : LogEvent) : void
{
var c : String = (event.currentTarget as ILogger).category;
//Alert.show(StringUtil.substitute(”cate:\t{0},\nmsg:\t{1},\nlevel:\t{2}”, c, event.message, LogEvent.getLevelString(event.level) )
,”use Log in flex3″ );
//call besiness delegate to send log info to server.
}

四、记录
在其它模块里,用Log.getLogger获取Log实例。只要category相同,获取的实例便相同。

var log : ILogger = Log.getLogger(’somecate’);
//log.log(level, msg, …rest)

五、在服务端处理收集的log信息,分文别类储存,最好存在数据库里。提供查找、删除、过滤等功能。

Demo:http://blog.sban.com.cn/flex/use-Log-in-flex3.swf

sban 2008年1月22日于北京

Related Posts

Last Modified

This entry was posted on 2008年01月22号 and is filed under flex. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply