package { import com.guru.debug.DebugPanel; import com.guru.event.EventCall; import com.guru.key.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.system.*; public class Logger { private static var LEVEL_EDDY:Number = 6; private static var LEVEL_ALEX:Number = 7; private static var LEVEL_XML:Number = 8; private static var LEVEL_SYSTEM:Number = 5; private static var LEVEL_DEBUG:Number = 4; private static var LEVEL_INFO:Number = 3; private static var LEVEL_WARN:Number = 2; private static var LEVEL_ERROR:Number = 1; private static var LEVEL_FATAL:Number = 0; private static var mInstance:Logger = null; private var mRoot:DisplayObject; private var mEnable:Boolean; private var mDebugPanel:DebugPanel; private var mKey:KeySequence; private var mDoTrace:Boolean = true; function Logger() { } public static function debug(... args):void { getInstance().log(args.toString(),LEVEL_DEBUG); } public static function info(... args):void { getInstance().log(args.toString(),LEVEL_INFO); } public static function warn(... args):void { getInstance().log(args.toString(),LEVEL_WARN); } public static function error(... args):void { getInstance().log(args.toString(),LEVEL_ERROR); } public static function fatal(... args):void { getInstance().log(args.toString(),LEVEL_FATAL); } public static function eddy(... args):void { getInstance().log(args.toString(),LEVEL_EDDY); } public static function xml(... args):void { getInstance().log(args.toString(),LEVEL_XML); } public static function alex(... args):void { getInstance().log(args.toString(),LEVEL_ALEX); } public static function system(... args):void { getInstance().log(args.toString(),LEVEL_SYSTEM); } public static function showSystemInfo():void { getInstance().doShowSystemInfo(); } public static function showTrace(pShow:Boolean):void { getInstance().doShowTrace(pShow); } public static function init(pRoot:DisplayObject, pDebugString:String = "gurudebug", pValue:Boolean = true):void { getInstance().doInit(pRoot,pDebugString, pValue); } public static function getInstance():Logger { if ( mInstance == null ) { mInstance = new Logger(); } return mInstance; } private function doInit(pRoot:DisplayObject,pDebugString:String, pValue:Boolean = false):void { mDebugPanel = new DebugPanel(pRoot); mKey = new KeySequence(pDebugString,pRoot,true); mKey.addEventListener(KeySequenceEvent.KEY_SEQUENCE, new EventCall(this, showDebugPanel)); mRoot = pRoot; mEnable = pValue; } private function showDebugPanel(pEvent = null):void { if ( mEnable ) { mDebugPanel.show(); } } public function isShow():Boolean { if(mDebugPanel is DebugPanel && mDebugPanel.isShow()) return true; return false; } public function doShowTrace(pShow:Boolean):void { mDoTrace = pShow; } public function log(pText:String, pLogLevel:Number = 10):void { var output:String = getLevelDesc(pLogLevel) + "\t" + pText; if (mDoTrace) { trace(output); } mDebugPanel.writeLine(output); } public function doShowSystemInfo():void { var tmpInfo:String = "system Info:\n"; tmpInfo += "avHardwareDisable: " + Capabilities.avHardwareDisable + "\n"; tmpInfo += "hasAccessibility: " + Capabilities.hasAccessibility + "\n"; tmpInfo += "hasAudio: " + Capabilities.hasAudio + "\n"; tmpInfo += "hasAudioEncoder: " + Capabilities.hasAudioEncoder + "\n"; tmpInfo += "hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo + "\n"; tmpInfo += "hasIME: " + Capabilities.hasIME + "\n"; tmpInfo += "hasMP3: " + Capabilities.hasMP3 + "\n"; tmpInfo += "hasPrinting: " + Capabilities.hasPrinting + "\n"; tmpInfo += "hasScreenBroadcast: " + Capabilities.hasScreenBroadcast + "\n"; tmpInfo += "hasScreenPlayback: " + Capabilities.hasScreenPlayback + "\n"; tmpInfo += "hasStreamingAudio: " + Capabilities.hasStreamingAudio + "\n"; tmpInfo += "hasStreamingVideo: " + Capabilities.hasStreamingVideo + "\n"; tmpInfo += "hasTLS: " + Capabilities.hasTLS + "\n"; tmpInfo += "hasVideoEncoder: " + Capabilities.hasVideoEncoder + "\n"; tmpInfo += "isDebugger: " + Capabilities.isDebugger + "\n"; tmpInfo += "language: " + Capabilities.language + "\n"; tmpInfo += "localFileReadDisable: " + Capabilities.localFileReadDisable + "\n"; tmpInfo += "manufacturer: " + Capabilities.manufacturer + "\n"; tmpInfo += "os: " + Capabilities.os + "\n"; tmpInfo += "pixelAspectRatio: " + Capabilities.pixelAspectRatio + "\n"; tmpInfo += "playerType: " + Capabilities.playerType + "\n"; tmpInfo += "screenColor: " + Capabilities.screenColor + "\n"; tmpInfo += "screenDPI: " + Capabilities.screenDPI + "\n"; tmpInfo += "screenResolutionX: " + Capabilities.screenResolutionX + "\n"; tmpInfo += "screenResolutionY: " + Capabilities.screenResolutionY + "\n"; tmpInfo += "version: " + Capabilities.version; mDebugPanel.writeLine(tmpInfo); } private function getLevelDesc(pLogLevel:Number):String { if ( LEVEL_DEBUG == pLogLevel ) { return "DEBUG:"; } else if ( LEVEL_INFO == pLogLevel ) { return "INFO:"; } else if ( LEVEL_WARN == pLogLevel ) { return "WARN:"; } else if ( LEVEL_ERROR == pLogLevel ) { return "ERROR:"; } else if ( LEVEL_FATAL == pLogLevel ) { return "FATAL:"; } else if ( LEVEL_SYSTEM == pLogLevel ) { return "system:"; } else if ( LEVEL_EDDY == pLogLevel) { return "eddy:"; } else if ( LEVEL_XML == pLogLevel) { return "xml:"; } else if ( LEVEL_ALEX == pLogLevel) { return "alex:"; } else { return ""; } } } }