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});
    }
    }
    }

  • 相关阅读:
    HDOJ 1207 汉诺塔II
    [转]写代码的小女孩
    POJ Subway tree systems
    HDOJ 3555 Bomb (数位DP)
    POJ 1636 Prison rearrangement (DP)
    POJ 1015 Jury Compromise (DP)
    UVA 10003
    UVA 103 Stacking Boxes
    HDOJ 3530 Subsequence
    第三百六十二、三天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/moonvan/p/2042825.html
Copyright © 2011-2022 走看看