Flex日志使用及配置

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

Flex日志使用及配置_第1张图片

    TraceTarget:继承AbstractTarget,该类提供使用全局trace()方法输出日志消息的记录程序目标。

    Log:主类,有几个静态方法,添加/移除 TraceTarget和获取ILogger。

    LogEventLevel:定义了log等级的常量。

    

    Log等级说明:5级 和 All

    分别是ALL(0) DEBUG(2) INFO(4) WARN(6) ERROR(8) FATAL(1000)
    每 个等级在输出时都包含了自身及后续等级的信息,即当把等级设定为INFO时,INFO WARN ERROR FATAL中的信息都会被输出,而排在INFO前面的DEBUG则不会被输出 

 

    example :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                layout="absolute" 
                width="100%" 
                height="100%" 
                creationComplete="init()">
    <mx:Script>
        <![CDATA[
        	import com.commons.STraceTarget;
            import mx.logging.Log;
            import mx.logging.LogEventLevel;
            import mx.logging.LogLogger;
            
            private var logger:LogLogger
            
            private function init():void
            {
                var logTarget:STraceTarget;
                logTarget = new STraceTarget(); //继承TraceTarget
                logTarget.filters = ["com.*"];
                logTarget.level = LogEventLevel.ALL;
                logTarget.includeCategory = true; //输出信息是否包含class名
                logTarget.includeLevel = true; //输出信息是否包含等级
                logTarget.includeDate = false; //输出信息是否包含日期
                logTarget.includeTime = false; //输出信息是否包含时间
                logger = Log.getLogger("Test") as LogLogger; //此处getLogger参数只是作为标志位使用,如果此处写为 com.Test(com包下面并没有Test类)也可以输出日志信息,详细可参考getLogger方法
                //logTarget.addLogger(logger); //使用指定的记录程序设置此目标
                Log.addTarget(logTarget); //允许指定的目标开始接收日志事件的通知。
            }
            private function logMessage():void
            {
                logger.debug(":debug......");
                logger.info(":info......");
                logger.error(":error......");
            }
        ]]>
    </mx:Script>
    <mx:Button label="add Message" click="logMessage()" />
    
</mx:Application>

    

    此处STraceTarget继承TraceTarget:

package com.commons
{
	import mx.controls.Alert;
	import mx.core.mx_internal;
	import mx.logging.targets.TraceTarget;
	
	
	use namespace mx_internal;
	
	public class STraceTarget extends TraceTarget
	{
		public function STraceTarget()
		{
			super();
		}
		
		/**
		 * 由该方法输出日志,可以重写此方法以实现将日志写入服务器(需要服务支持),或者将日志写入本地
		 */
		override mx_internal function internalLog(message:String):void
		{
			Alert.show(message);
		}
	}
}

 

 

   

你可能感兴趣的:(Flex)