From 1fabb1be06ad883e63744b7ec2081bbfc9ed93c6 Mon Sep 17 00:00:00 2001 From: shmyga Date: Mon, 18 Nov 2013 15:32:12 +0400 Subject: [PATCH] added loggers --- L.hx | 29 +++++++++++++++++++++++++++++ haxelib.json | 12 ++++++------ haxework/log/BaseLogger.hx | 31 +++++++++++++++++++++++++++++++ haxework/log/ILogger.hx | 13 +++++++++++++ haxework/log/TraceLogger.hx | 14 ++++++++++++++ 5 files changed, 93 insertions(+), 6 deletions(-) create mode 100755 L.hx create mode 100755 haxework/log/BaseLogger.hx create mode 100755 haxework/log/ILogger.hx create mode 100755 haxework/log/TraceLogger.hx 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