diff --git a/L.hx b/L.hx new file mode 100755 index 0000000..d9df53a --- /dev/null +++ b/L.hx @@ -0,0 +1,29 @@ +package; + +import haxework.log.ILogger; + +class L { + + private static var loggers:Array = new Array(); + + public static function push(logger:ILogger):Void { + loggers.push(logger); + } + + public static function d(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + //trace(p); + for (logger in loggers) logger.d(tag, message, error, p); + } + + public static function i(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + for (logger in loggers) logger.i(tag, message, error, p); + } + + public static function w(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + for (logger in loggers) logger.w(tag, message, error, p); + } + + public static function e(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + for (logger in loggers) logger.e(tag, message, error, p); + } +} \ No newline at end of file diff --git a/haxelib.json b/haxelib.json index 4e38701..d95192f 100755 --- a/haxelib.json +++ b/haxelib.json @@ -1,11 +1,11 @@ { "name": "haxework", - "url" : "git@bitbucket.org/shmyga/haxework.git", - "license": "", - "tags": [], - "description": "", + "url" : "https://bitbucket.org/shmyga/haxework.git", + "license": "BSD", + "tags": ["flash"], + "description": "Framework.", "version": "0.0.0", - "releasenote": "Updated from git.", - "contributors": [], + "releasenote": "First release.", + "contributors": ["shmyga"], "dependencies": {} } \ No newline at end of file diff --git a/haxework/log/BaseLogger.hx b/haxework/log/BaseLogger.hx new file mode 100755 index 0000000..6dd13ba --- /dev/null +++ b/haxework/log/BaseLogger.hx @@ -0,0 +1,31 @@ +package haxework.log; + +import haxework.log.ILogger.LogLevel; + +class BaseLogger implements ILogger { + + public function new() {} + + public function log(level:LogLevel, tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + var s:String = "[" + level + "] " + tag + " - " + message + (error == null ? "" : " {" + Std.string(error) + "}"); + write(s, p); + } + + private function write(text:String, ?p:haxe.PosInfos):Void {} + + public function d(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + log(LogLevel.DEBUG, tag, message, error, p); + } + + public function i(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + log(LogLevel.INFO, tag, message, error, p); + } + + public function w(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + log(LogLevel.WARNING, tag, message, error, p); + } + + public function e(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { + log(LogLevel.ERROR, tag, message, error, p); + } +} \ No newline at end of file diff --git a/haxework/log/ILogger.hx b/haxework/log/ILogger.hx new file mode 100755 index 0000000..6ee17d8 --- /dev/null +++ b/haxework/log/ILogger.hx @@ -0,0 +1,13 @@ +package haxework.log; + +enum LogLevel { + DEBUG; INFO; WARNING; ERROR; +} + +interface ILogger { + public function log(level:LogLevel, tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void; + public function d(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void; + public function i(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void; + public function w(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void; + public function e(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void; +} \ No newline at end of file diff --git a/haxework/log/TraceLogger.hx b/haxework/log/TraceLogger.hx new file mode 100755 index 0000000..af1916c --- /dev/null +++ b/haxework/log/TraceLogger.hx @@ -0,0 +1,14 @@ +package haxework.log; + +import haxework.log.ILogger.LogLevel; + +class TraceLogger extends BaseLogger { + + public function new() { + super(); + } + + override private function write(text:String, ?p:haxe.PosInfos):Void { + haxe.Log.trace(text, p); + } +} \ No newline at end of file