diff --git a/WikiJam/Util/gs_logger/appender.gd b/WikiJam/Util/gs_logger/appender.gd new file mode 100644 index 0000000..33fd013 --- /dev/null +++ b/WikiJam/Util/gs_logger/appender.gd @@ -0,0 +1,52 @@ +""" +Class: Appender + Responsible for Delivering a Log Event to its Destination. +""" + +extends Reference +class_name Appender + +var layout: Layout = PatternLayout.new() +var logger_level: int = 999 setget _set_logger_level +var logger_format: int = 030 + +var name = "appender" +var is_open = false + + +func _set_logger_level(level: int): + logger_level = level + + +""" +Function: start + Start this Appender +""" +func start(): + pass + +""" +Function: stop + Stop this Appender +""" +func stop(): + pass + +""" +Function: append + Logs an Event in whatever logic this Appender has +""" +func append(message: Message): + pass + + +""" +Function: append_raw + Send Raw Text to the Appender +""" +func append_raw(text: String): + pass + + +func _init(): + pass diff --git a/WikiJam/Util/gs_logger/appenders/console_appender.gd b/WikiJam/Util/gs_logger/appenders/console_appender.gd new file mode 100644 index 0000000..f1be8cc --- /dev/null +++ b/WikiJam/Util/gs_logger/appenders/console_appender.gd @@ -0,0 +1,21 @@ + +""" +Class: ConsoleAppender + Logs an Event to the Console Window. +""" + +extends Appender +class_name ConsoleAppender + +func append(message: Message): + print(layout.build(message, logger_format)) + + +func append_raw(text: String): + print(text) + + +func _init(): + name = "console appender" + print("** Console Appender Initialized **") + print(" ") diff --git a/WikiJam/Util/gs_logger/appenders/file_appender.gd b/WikiJam/Util/gs_logger/appenders/file_appender.gd new file mode 100644 index 0000000..6596961 --- /dev/null +++ b/WikiJam/Util/gs_logger/appenders/file_appender.gd @@ -0,0 +1,32 @@ + +""" +Class: FileAppender + Logs an Event to a File. +""" + +extends Appender +class_name FileAppender + +var savefile + + +func append(message): + savefile.store_string(layout.build(message, logger_format)) + savefile.store_string("\n") + + +func append_raw(text): + savefile.store_string(text) + savefile.store_string("\n") + + +func stop(): + savefile.close() + + +func _init(filename="%s.log" % ProjectSettings.get("application/config/name")): + savefile = File.new() + savefile.open("%s" % [filename], File.WRITE) + name = "file appender" + print("** File Appender Initialized **") + print(" ") diff --git a/WikiJam/Util/gs_logger/layout.gd b/WikiJam/Util/gs_logger/layout.gd new file mode 100644 index 0000000..ad041f7 --- /dev/null +++ b/WikiJam/Util/gs_logger/layout.gd @@ -0,0 +1,21 @@ +""" +Class: Layout + Formats a Log Event for an Appender. +""" +extends Reference +class_name Layout + +func getHeader(): + return "" + + +func getFooter(): + return "" + + +func build(message: Message, format: int): + return message + + +func _init(): + pass diff --git a/WikiJam/Util/gs_logger/layouts/html_layout.gd b/WikiJam/Util/gs_logger/layouts/html_layout.gd new file mode 100644 index 0000000..e14f1c3 --- /dev/null +++ b/WikiJam/Util/gs_logger/layouts/html_layout.gd @@ -0,0 +1,61 @@ +""" +Class: HtmlLayout + Generates an HTML Page and adds each Log Event + to a Row in a Table. +""" + +extends Layout +class_name HtmlLayout + +var contextual_classes = \ + { + Logger.LOG_LEVEL_ALL: "", + Logger.LOG_LEVEL_FINE: "", + Logger.LOG_LEVEL_TRACE: "", + Logger.LOG_LEVEL_INFO: "info", + Logger.LOG_LEVEL_FATAL: "danger", + Logger.LOG_LEVEL_WARN: "warning", + Logger.LOG_LEVEL_ERROR: "danger", + Logger.LOG_LEVEL_DEBUG: "", + Logger.LOG_LEVEL_NONE: "", + } + +var header = \ +""" + +
+Number | +Message | + +""" + + +var footer = \ +""" +
---|