Доработка. В Журнале добавлены фильтры.
This commit is contained in:
@@ -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