Доработка. В Журнале добавлены фильтры.
This commit is contained in:
@@ -37,8 +37,8 @@ func _enter_tree() -> void:
|
||||
_def_settings("plugins/logger/file/file_path", "user://uarep-ctl.log")
|
||||
_def_settings("plugins/logger/file/log_file_write", true)
|
||||
|
||||
_def_settings("plugins/logger/default_output_format", "[{hour}:{minute}:{second}][{level}]{text}")
|
||||
_def_settings("plugins/logger/file_format", "[{hour}:{minute}:{second}][{level}]{text}")
|
||||
_def_settings("plugins/logger/default_output_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}")
|
||||
_def_settings("plugins/logger/file_format", "[{year}-{month}-{day} {hour}:{minute}:{second}][{level}]{text}")
|
||||
|
||||
add_autoload_singleton(AUTOLOAD_NAME, AUTOLOAD_PATH)
|
||||
add_custom_type(LOGGER_OUTPUT, "RichTextLabel", load(LOGGER_OUTPUT_SCRIPT), load(LOGGER_OUTPUT_ICON))
|
||||
|
||||
@@ -32,12 +32,14 @@ var _format_default_output : String
|
||||
var _format_file : String
|
||||
|
||||
var _names = {
|
||||
INFO: "INFO",
|
||||
DEBUG: "DEBUG",
|
||||
WARNING: "WARNING",
|
||||
ERROR: "ERROR",
|
||||
FATAL: "FATAL"
|
||||
INFO: "ИНФО",
|
||||
DEBUG: "ОТЛАДКА",
|
||||
WARNING: "ВНИМАНИЕ",
|
||||
ERROR: "ОШИБКА",
|
||||
FATAL: "АВАРИЯ"
|
||||
}
|
||||
var _msg_array: Array
|
||||
var _filters: Array
|
||||
|
||||
# Can be overridden to define custom default values.
|
||||
func _enter_tree() -> void:
|
||||
@@ -194,11 +196,15 @@ func message(level: int, text: String) -> void:
|
||||
msg["level"] = level
|
||||
msg["level_name"] = _names[level]
|
||||
msg["text"] = " " + text
|
||||
|
||||
logged.emit(msg)
|
||||
|
||||
_msg_array.append(msg)
|
||||
if (_flt_msg(msg)):
|
||||
logged.emit(msg)
|
||||
|
||||
|
||||
if _file_write_enabled:
|
||||
_file.store_line(format_file(msg))
|
||||
_file.call_deferred('flush')
|
||||
|
||||
if _default_output_enabled:
|
||||
print(format_stdout(msg))
|
||||
@@ -208,17 +214,54 @@ func _open_file() -> void:
|
||||
if is_instance_valid(_file) and _file.is_open():
|
||||
_file.close()
|
||||
|
||||
_file = FileAccess.open(get_file_path(), FileAccess.WRITE)
|
||||
_file = FileAccess.open(get_file_path(), FileAccess.READ_WRITE)
|
||||
|
||||
var err := FileAccess.get_open_error()
|
||||
if err:
|
||||
_file = FileAccess.open(get_file_path(), FileAccess.WRITE)
|
||||
_file.close()
|
||||
_file = FileAccess.open(get_file_path(), FileAccess.READ_WRITE)
|
||||
return print_debug(error_string(err))
|
||||
|
||||
err = _file.get_error()
|
||||
if err:
|
||||
return print_debug(error_string(err))
|
||||
|
||||
|
||||
var read = _file.get_as_text()
|
||||
_file.seek_end(0)
|
||||
|
||||
|
||||
func _close_file() -> void:
|
||||
if is_instance_valid(_file) and _file.is_open():
|
||||
_file = null
|
||||
|
||||
|
||||
func save_file(path):
|
||||
var f = FileAccess.open(path, FileAccess.WRITE)
|
||||
var err := FileAccess.get_open_error()
|
||||
if err:
|
||||
print_debug(error_string(err))
|
||||
var log_text = _file.get_as_text()
|
||||
f.store_line(log_text)
|
||||
f.close()
|
||||
|
||||
|
||||
func set_filtrs(flt_array: Array):
|
||||
_filters = flt_array
|
||||
|
||||
|
||||
func _flt_msg(msg):
|
||||
var flt_arr: Array = []
|
||||
for item in _filters:
|
||||
if item.button_pressed:
|
||||
flt_arr.append(item.get_meta('filter'))
|
||||
if msg['text'].find(item.get_meta('filter')) != -1:
|
||||
return true
|
||||
if msg['level_name'] in flt_arr:
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
func add_msgs():
|
||||
for msg in _msg_array:
|
||||
if (_flt_msg(msg)):
|
||||
logged.emit(msg)
|
||||
|
||||
Reference in New Issue
Block a user