zoukankan      html  css  js  c++  java
  • flex日志的使用与配置方法

    flex日志的使用与配置方法

    flex 2010-11-22 22:42:38 阅读38 评论0   字号: 订阅

    flex日志(log)的使用与配置方法

    Flex集成一个Log框架,可以完成很多用trace()做debug时完成不了的功能输 出log时可以实现分等级(共5+1级),用过滤器指定输出的类,以及输出方式(默认为 trace)。
    需要用到的类如下:

    该类位于mx.logging包中,共需要三个类和一个接口

    mx.logging.Log – 主类,有几个静态方法,添加/移除 TraceTarget和获取ILogger
    mx.logging.LogEventLevel – 定义了log等级的常量
    mx.logging.targets.TraceTarget – logger器,定义log输出等级,过滤器和输出方式

    mx.logging.ILogger – 由Log.getLogger(‘ClassName’)获取到的Logger发送器

    使用步骤新建TraceTarget

    var traceTarget:TraceTarget = new TraceTarget();
    traceTarget.filters = [\'spark.components.*\'\'myPackage.MyClass\']; //创建过滤器, 可以直接用class名,也可以使用*类过滤整个包
    traceTarget.filters = [*]; //这样写过滤器,就是输出全部类了

    traceTarget.includeDate = true; //输出信息是否包含日期
    traceTarget.includeTime = true; //输出信息是否包含时间
    traceTarget.includeLevel = true; //输出信息是否包含等级
    traceTarget.includeCategory = true; //输出信息是否包含class名
    traceTarget.level = LogEventLevel.INFO; //设定输出的等级
    Log等级说明
    log 共分为5级和ALL
    分别是ALL(0) DEBUG(2) INFO(4) WARN(6) ERROR(8) FATAL(1000)
    每 个等级在输出时都包含了自身及后续等级的信息
    即 当把等级设定为INFO时,INFO WARN ERROR FATAL中的信息都会被输出,而排在INFO前面的DEBUG则不会被输出 

    将 TraceTarget添加到Log中
    Log.addTarget(traceTarget);
    //移除的方法:Log.removeTarget(traceTarget);
    获取 ILogger并输出
    var info:ILogger = Log.getLogger(‘myPackage.MyClass’); //获取ILogger,getLogger的参数用于过滤器使用
    info.info(‘trace log massege’); //输出指定等级的log信息
    info.debug(‘trace log massege‘’trace log massege2′); //参数可以任意个,与trace()相同
    info.error(‘trace log massege‘);
    info.warn(‘trace log massege‘);
    info.fatal(‘trace log massege‘);
    info.log(LogEventLevel.INFO’trace info’\'masseage’); //

    或者直接点
    Log.getLogger(‘spark.components.Button‘).warn(‘trace log massage’);
    扩展自定义一个简单/安全getLogger
    Log.getLogger() 方法需要输入完整的class名作为参数,这样很麻烦而且容易出错
    可以扩展该功能,直接使用对象本身作为参数
    例 如:
    public function myGetLogger(classobject:object):ILogger{
    var _className:String = flash.utils.getQualifiedClassName(classobject);
    var _category:String = _className.replace(‘::’’.’);
    return Log.getLogger(_category);

    }
    自定义输出位置
    TraceTarget中默认使用trace()进行输出,该功能可以自定义,例如输出到服务器端或者某个TextArea中去

    方法是继承 TraceTarget或LineFormattedTarget(TraceTarget的父类), 然后override internalLog方法(注意该方法使用了mx_internal命名空间)


    package myPackage

    import mx.core.mx_internal;

    import mx.logging.targets.TraceTarget;

    import mx.rpc.http.HTTPService;
    use namespace mx_internal;
    public class MyTraceTarget extends TraceTarget
    {
    public function MyTraceTarget()
    {
    super();

    } override mx_internal function internalLog(message:String):void{ var httpService:HTTPService = new HTTPService(); httpService.url = http://localhost/logAction; httpService.send({log:message});

    } } }
    }
    override mx_internal function internalLog(message:String):void{
    var httpService:HTTPService = new HTTPService();
    httpService.url = ‘http://localhost/logAction’;
    httpService.send({log:message});
    }
    }
    }

  • 相关阅读:
    HDU 1882 Strange Billboard(位运算)
    Codeforces Round #243 (Div. 2) A~C
    Codeforces Round #242 (Div. 2) A~C
    2014 微软 编程之美初赛第一场 题目3 : 活动中心
    2014年微软编程之美初赛第一场 第二题 树
    POJ 2318 TOYS && POJ 2398 Toy Storage(几何)
    Coder-Strike 2014
    POJ 1269 Intersecting Lines(几何)
    HDU 1883 Phone Cell (圆覆盖最多点)
    HDU 1429 胜利大逃亡(续)(三维BFS)
  • 原文地址:https://www.cnblogs.com/moonvan/p/2042825.html
Copyright © 2011-2022 走看看