package org.papervision3d.core.log { import flash.events.EventDispatcher; import org.papervision3d.core.log.event.student_ar_org_papervision3d_core_log_PaperLoggerEvent; /** * @author Ralph Hauwert */ public class student_ar_org_papervision3d_core_log_PaperLogger extends EventDispatcher { private static var instance:student_ar_org_papervision3d_core_log_PaperLogger; public var traceLogger:PaperTraceLogger; public function student_ar_org_papervision3d_core_log_PaperLogger() { if(instance){ throw new Error("Don't call the student_ar_org_papervision3d_core_log_PaperLogger constructor directly"); }else{ traceLogger = new PaperTraceLogger(); registerLogger(traceLogger); } } public function _log(msg:String, object:Object = null, ...arg):void { var vo:PaperLogVO = new PaperLogVO(LogLevel.LOG, msg, object, arg); var ev:student_ar_org_papervision3d_core_log_PaperLoggerEvent = new student_ar_org_papervision3d_core_log_PaperLoggerEvent(vo); dispatchEvent(ev); } public function _info(msg:String, object:Object = null, ...arg):void { var vo:PaperLogVO = new PaperLogVO(LogLevel.INFO, msg, object, arg); var ev:student_ar_org_papervision3d_core_log_PaperLoggerEvent = new student_ar_org_papervision3d_core_log_PaperLoggerEvent(vo); dispatchEvent(ev); } public function _debug(msg:String, object:Object = null, ...arg):void { var vo:PaperLogVO = new PaperLogVO(LogLevel.DEBUG, msg, object, arg); var ev:student_ar_org_papervision3d_core_log_PaperLoggerEvent = new student_ar_org_papervision3d_core_log_PaperLoggerEvent(vo); dispatchEvent(ev); } public function _error(msg:String, object:Object = null, ...arg):void { var vo:PaperLogVO = new PaperLogVO(LogLevel.ERROR, msg, object, arg); var ev:student_ar_org_papervision3d_core_log_PaperLoggerEvent = new student_ar_org_papervision3d_core_log_PaperLoggerEvent(vo); dispatchEvent(ev); } public function _warning(msg:String, object:Object = null, ...arg):void { var vo:PaperLogVO = new PaperLogVO(LogLevel.WARNING, msg, object, arg); var ev:student_ar_org_papervision3d_core_log_PaperLoggerEvent = new student_ar_org_papervision3d_core_log_PaperLoggerEvent(vo); dispatchEvent(ev); } public function registerLogger(logger:Abstractstudent_ar_org_papervision3d_core_log_PaperLogger):void { logger.registerWithstudent_ar_org_papervision3d_core_log_PaperLogger(this); } public function unregisterLogger(logger:Abstractstudent_ar_org_papervision3d_core_log_PaperLogger):void { logger.unregisterFromstudent_ar_org_papervision3d_core_log_PaperLogger(this); } public static function log(msg:String, object:Object = null, ...arg):void { getInstance()._log(msg); } public static function warning(msg:String, object:Object = null, ...arg):void { getInstance()._warning(msg); } public static function info(msg:String, object:Object = null, ...arg):void { getInstance()._info(msg); } public static function error(msg:String, object:Object = null, ...arg):void { getInstance()._error(msg); } public static function debug(msg:String, object:Object = null, ...arg):void { getInstance()._debug(msg); } public static function getInstance():student_ar_org_papervision3d_core_log_PaperLogger { if(!instance){ instance = new student_ar_org_papervision3d_core_log_PaperLogger(); } return instance; } } }