From bba70ed69070c05a0cd401ccb0b1e946ab2e247e Mon Sep 17 00:00:00 2001 From: WallK Date: Fri, 18 Oct 2024 11:37:02 +0300 Subject: [PATCH] restore godot logger, default is still bash --- tools/configurator/scripts/class_functions.gd | 52 +++++++++++++------ 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/tools/configurator/scripts/class_functions.gd b/tools/configurator/scripts/class_functions.gd index 82af72a1..6689c3eb 100644 --- a/tools/configurator/scripts/class_functions.gd +++ b/tools/configurator/scripts/class_functions.gd @@ -100,6 +100,11 @@ func multi_state(section: String, state: String) -> String: return state func logger(log_type: String, log_text: String) -> void: + # Type of log messages: + # log d - debug message: maybe in the future we can decide to hide them in main builds or if an option is toggled + # log i - normal informational message + # log w - waring: something is not expected but it's not a big deal + # log e - error: something broke var log_header_text = "gdc_" log_header_text+=log_text log_parameters = ["log", log_type, log_header_text] @@ -110,40 +115,57 @@ func logger_godot(log_type: String, log_text: String) -> void: var log_path: String = '/var/config/retrodeck/logs/gd_logs.log' var log_dir: DirAccess = DirAccess.open(log_dir_path) - var log_file: FileAccess = FileAccess.open(log_path, FileAccess.READ_WRITE) + var log_file: FileAccess + + var log_header: String = " GD " + + var datetime = Time.get_datetime_dict_from_system() + var msec = Time.get_ticks_msec() #very very fake ms, TODO + + var timestamp: String = "[%d-%02d-%02d %02d:%02d:%02d.%03d]" % [ + datetime.year, datetime.month, datetime.day, + datetime.hour, datetime.minute, datetime.second, msec] # fake ms + + var log_line: String = timestamp + log_header - var log_line: String = "GD " match log_type: 'w': - log_line += "Warning " - #print("Warning, mate") + log_line += "[Warning] " + # print("Warning, mate") 'e': - log_line += "Error " - #print("Error, mate") + log_line += "[Error] " + # print("Error, mate") 'i': - log_line += "Info " - #print("Info, mate") + log_line += "[Info] " + # print("Info, mate") 'd': - log_line += "Debug " - #print("Debug, mate") - #_: - #print("No idea, mate") + log_line += "[Debug] " + # print("Debug, mate") + _: + log_line += " " + print("No idea, mate") log_line += log_text - #print(log_line) - + # print(log_line) + if not log_dir: log_dir = DirAccess.open("res://") #open something valid to create an instance + print(log_dir.make_dir_recursive(log_dir_path)) if log_dir.make_dir_recursive(log_dir_path) != OK: print("Something wrong with log directory") return + if not FileAccess.open(log_path, FileAccess.READ): + log_file = FileAccess.open(log_path, FileAccess.WRITE_READ) # to create a file if not there + else: + log_file = FileAccess.open(log_path, FileAccess.READ_WRITE) # to not truncate + if log_file: log_file.seek_end() log_file.store_line(log_line) log_file.close() else: print("Something wrong with log file") - + func array_to_string(arr: Array) -> String: var text: String for line in arr: