cc-haxe/src/kernel/Log.hx
2022-02-20 01:30:32 +01:00

52 lines
1.4 KiB
Haxe

package kernel;
import util.Debug;
import kernel.ui.WindowContext;
import kernel.ui.WindowManager;
import lib.TermWriteable;
import lib.TermIO;
/**
Log messages to specified output.
**/
class Log {
private static final context:WindowContext = WindowManager.instance.createNewContext();
private static var writer:TermIO = new TermIO(context);
private static function setMainoutout(newOutput: TermWriteable) {
writer = new TermIO(newOutput);
}
public static function info(msg: Dynamic, ?pos:haxe.PosInfos){
writer.writeLn("[INFO]["+pos.className+"]: "+Std.string(msg));
#if webconsole
Debug.printWeb("[INFO]["+pos.className+"]: "+Std.string(msg));
#end
}
public static function warn(msg: Dynamic, ?pos:haxe.PosInfos){
writer.writeLn("[WARN]["+pos.className+"]: "+Std.string(msg),Yellow);
#if webconsole
Debug.printWeb("[WARN]["+pos.className+"]: "+Std.string(msg));
#end
}
public static function error(msg: Dynamic,?pos:haxe.PosInfos) {
writer.writeLn("[ERRO]["+pos.className+"]: "+Std.string(msg),Red);
#if webconsole
Debug.printWeb("[ERRO]["+pos.className+"]: "+Std.string(msg));
#end
}
public static function debug(msg: Dynamic,?pos:haxe.PosInfos) {
writer.writeLn("[DEBG]["+pos.className+"]: "+Std.string(msg),Gray);
#if webconsole
Debug.printWeb("[DEBG]["+pos.className+"]: "+Std.string(msg));
#end
}
public static function moveToOutput(addr: String) {
WindowManager.instance.focusContextToOutput(context,addr);
}
}