一个简单但是非常实用的AIR log类

By Minidxer | September 13, 2008

the list of helpful Flex or Flash debug tools中,我们可以找到看到很多非常好用的Flex/Flash调试工具,对于输出INFO, DEBUG, ERROR, FATAL这样不同等级Log当然也都是没有问题,不过对于一些应用来说,可能我们并不需要引入整个调试包。下面是一个非常简单但是却可以满足基本所需要的log调试所需要功能的类,可以方便的使用。下面是代码:


  1. package com.engroup.log
  2. /**
  3. * The custom logger factory of eSoftHead company
  4. */
  5. public class LoggerFactory
  6. {
  7.     private static var instance:LoggerFactory = new LoggerFactory();
  8.  
  9.     function LoggerFactory()
  10.     {
  11.         if (instance != null) {
  12.             throw new Error("The instance Logger already be exist");
  13.         }
  14.  
  15.         // hard-code or can read the configuration file in application path
  16.  
  17.         var logTarget:TraceTarget = new TraceTarget();
  18.         logTarget.filters = ["com.engroup.*"];
  19.         logTarget.level = LogEventLevel.ALL;
  20.         logTarget.includeCategory = true;
  21.         logTarget.includeDate = true;
  22.         logTarget.includeLevel = true;
  23.         logTarget.includeTime = true;
  24.  
  25.         Log.addTarget(logTarget);
  26.     }
  27.  
  28.     private function getInternalLog(classReference:Class): ILogger {
  29.         var type:XML = describeType(classReference);
  30.         var className:String = type.@name;
  31.         var category:String = className.replace("::", ".");
  32.         return Log.getLogger(category);
  33.     }
  34.  
  35.     public static function getLogger(classReference:Class): ILogger {
  36.       return instance.getInternalLog(classReference);
  37.     }
  38. }

下面是一个使用例子:

  1. private static var log:ILogger = LoggerFactory.getLogger(ABC);
  2. log.debug("The example log message");

Topics: Adobe其他 | 1 Comment » | 439 views Tags: , , , ,

Search Posts