[log] update

This commit is contained in:
2018-03-19 17:38:43 +03:00
parent 086518ae42
commit 4487aedee7
7 changed files with 153 additions and 153 deletions

View File

@@ -4,7 +4,7 @@
"license": "BSD", "license": "BSD",
"tags": ["flash", "openfl"], "tags": ["flash", "openfl"],
"description": "Framework.", "description": "Framework.",
"version": "0.8.0", "version": "0.8.1",
"releasenote": "Update.", "releasenote": "Update.",
"contributors": ["shmyga"], "contributors": ["shmyga"],
"classPath": "src/main", "classPath": "src/main",

View File

@@ -1,40 +1,44 @@
package haxework.log; package haxework.log;
#if flash
import flash.events.ErrorEvent;
import flash.errors.Error;
#end
import haxework.log.ILogger.LogLevel; import haxework.log.ILogger.LogLevel;
import haxe.CallStack;
class LoggerUtil {
public static function printPos(pos:haxe.PosInfos):String {
return '${pos.fileName}:${pos.lineNumber}:';
}
public static function printStackItem(item:StackItem):String {
return switch item {
case StackItem.CFunction: 'CFunction';
case StackItem.Module(m): m;
case StackItem.FilePos(s, file, line): '${file}:${line}';
case StackItem.Method(classname, method): '${classname}::${method}}';
case StackItem.LocalFunction(v): 'LocalFunction(${v})';
}
}
public static function printError(error:Dynamic):String {
return error == null ? '' : Std.string('${error}\n\t${CallStack.exceptionStack().map(printStackItem).join('\n\t')}');
}
}
class BaseLogger implements ILogger { class BaseLogger implements ILogger {
public function new() {} public function new() {}
public function log(level:LogLevel, tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { public function log(level:LogLevel, tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void {
write(buildString(level, tag, message, error), p); write(buildString(level, tag, message, error, p));
} }
private function buildString(level:LogLevel, tag:String, message:String, ?error:Dynamic):String { private function buildString(level:LogLevel, tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):String {
return "[" + level + "] " + tag + " - " + message + (error == null ? "" : " {" + error2strign(error) + "}"); return '${Date.now()} | ${LoggerUtil.printPos(p)} [${level}] ${tag} - ${message}${LoggerUtil.printError(error)}';
} }
public static function error2strign(error:Dynamic):String { private function write(text:String):Void {}
#if flash
return if (Std.is(error, Error)) {
var stack:String = error.getStackTrace();
stack == null ? Std.string(error) : stack;
} else if (Std.is(error, ErrorEvent)) {
var event:ErrorEvent = cast(error, ErrorEvent);
event.type + " - " + event.text;
} else {
Std.string(error);
}
#else
return Std.string(error);
#end
}
private function write(text:String, ?p:haxe.PosInfos):Void {}
public function d(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void { public function d(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void {
log(LogLevel.DEBUG, tag, message, error, p); log(LogLevel.DEBUG, tag, message, error, p);

View File

@@ -4,6 +4,7 @@ import haxework.log.ILogger.LogLevel;
import flash.external.ExternalInterface; import flash.external.ExternalInterface;
import haxework.log.BaseLogger; import haxework.log.BaseLogger;
class JSLogger extends BaseLogger { class JSLogger extends BaseLogger {
private var available:Bool; private var available:Bool;
@@ -13,18 +14,16 @@ class JSLogger extends BaseLogger {
available = ExternalInterface.available; available = ExternalInterface.available;
} }
override public function e(tag:String, message:String, error:Dynamic = null, p:haxe.PosInfos = null):Void { override public function e(tag:String, message:String, ?error:Dynamic, ?p:haxe.PosInfos):Void {
if (available) { if (available) {
var text:String = buildString(LogLevel.ERROR, tag, message, error); var text:String = buildString(LogLevel.ERROR, tag, message, error);
var s:String = p.fileName + ":" + p.lineNumber + ": " + text + "\n"; try {ExternalInterface.call("console.error", text);} catch (error:Dynamic) {available = false;}
try {ExternalInterface.call("console.error", s);} catch (error:Dynamic) {available = false;}
} }
} }
override private function write(text:String, ?p:haxe.PosInfos):Void { override private function write(text:String):Void {
if (available) { if (available) {
var s:String = p.fileName + ":" + p.lineNumber + ": " + text + "\n"; try {ExternalInterface.call("console.log", text);} catch (error:Dynamic) {available = false;}
try {ExternalInterface.call("console.log", s);} catch (error:Dynamic) {available = false;}
} }
} }
} }

View File

@@ -15,6 +15,7 @@ import sys.net.Host;
import sys.net.Socket; import sys.net.Socket;
#end #end
class SocketLogger extends BaseLogger { class SocketLogger extends BaseLogger {
private var socket:Socket; private var socket:Socket;
@@ -43,14 +44,15 @@ class SocketLogger extends BaseLogger {
//trace("SocketLogger", "", error); //trace("SocketLogger", "", error);
} }
override private function write(text:String, ?p:haxe.PosInfos):Void { override private function write(text:String):Void {
try { try {
var s:String = p.fileName + ":" + p.lineNumber + ": " + text + "\n";
#if flash #if flash
socket.writeUTFBytes(s); socket.writeUTFBytes(text);
socket.writeUTFBytes('\n');
socket.flush(); socket.flush();
#else #else
socket.write(s); socket.write(text);
socket.write('\n');
#end #end
} catch (error:Dynamic) {} } catch (error:Dynamic) {}
} }

View File

@@ -2,6 +2,7 @@ package haxework.log;
import flash.text.TextField; import flash.text.TextField;
class TextFieldLogger extends BaseLogger { class TextFieldLogger extends BaseLogger {
private var textField:TextField; private var textField:TextField;
@@ -11,7 +12,7 @@ class TextFieldLogger extends BaseLogger {
this.textField = textField; this.textField = textField;
} }
override private function write(text:String, ?p:haxe.PosInfos):Void { override private function write(text:String):Void {
this.textField.text += ("\n" + text); this.textField.text += ("\n" + text);
} }
} }

View File

@@ -1,6 +1,5 @@
package haxework.log; package haxework.log;
import haxework.log.ILogger.LogLevel;
class TraceLogger extends BaseLogger { class TraceLogger extends BaseLogger {
@@ -8,7 +7,7 @@ class TraceLogger extends BaseLogger {
super(); super();
} }
override private function write(text:String, ?p:haxe.PosInfos):Void { override private function write(text:String):Void {
haxe.Log.trace(text, p); haxe.Log.trace(text);
} }
} }

View File

@@ -1,20 +1,15 @@
package haxework.provider; package haxework.provider;
class Provider { class Provider {
private static function key<T>(i:Class<T>, ?type:Dynamic):String { private static function key<T>(i:Class<T>, ?type:Dynamic):String {
var result = Type.getClassName(i); var result = Type.getClassName(i);
if (type != null) result += ':${type}'; if (type != null) result += ':${Std.string(type)}';
return result; return result;
} }
//private static var factories:Map<String, Class<Dynamic>> = new Map(); private static var factories:Map<String, Class<Dynamic>> = new Map();
private static var factories:Map<String, Class<Dynamic>> = cast [
#if (!neko)
key(haxework.net.manage.LoaderManager) => haxework.net.manage.ILoaderManager
#end
];
private static var args:Map<String, Array<Dynamic>> = new Map(); private static var args:Map<String, Array<Dynamic>> = new Map();
private static var instances:Map<String, Dynamic> = new Map(); private static var instances:Map<String, Dynamic> = new Map();