diff --git a/haxework/log/JSLogger.hx b/haxework/log/JSLogger.hx new file mode 100755 index 0000000..d44724d --- /dev/null +++ b/haxework/log/JSLogger.hx @@ -0,0 +1,30 @@ +package haxework.log; + +import haxework.log.ILogger.LogLevel; +import flash.external.ExternalInterface; +import haxework.log.BaseLogger; + +class JSLogger extends BaseLogger { + + private var available:Bool; + + public function new() { + super(); + available = ExternalInterface.available; + } + + override public function e(tag:String, message:String, error:Dynamic = null, p:haxe.PosInfos = null):Void { + if (available) { + var text:String = buildString(LogLevel.ERROR, tag, message, error); + var s:String = p.fileName + ":" + p.lineNumber + ":" + text + "\n"; + try {ExternalInterface.call("console.error", s);} catch (error:Dynamic) {available = false;} + } + } + + override private function write(text:String, ?p:haxe.PosInfos):Void { + if (available) { + var s:String = p.fileName + ":" + p.lineNumber + ":" + text + "\n"; + try {ExternalInterface.call("console.log", s);} catch (error:Dynamic) {available = false;} + } + } +} \ No newline at end of file