Adding better error logging in UI

This commit is contained in:
ebolam
2022-09-21 11:40:10 -04:00
parent c098f8b32a
commit 77a5496d1f
3 changed files with 31 additions and 7 deletions

View File

@@ -467,6 +467,7 @@ app.secret_key = secrets.token_hex()
app.config['SESSION_TYPE'] = 'filesystem'
app.config['TEMPLATES_AUTO_RELOAD'] = True
socketio = SocketIO(app, async_method="eventlet", manage_session=False, cors_allowed_origins='*', max_http_buffer_size=10_000_000)
logger.add(lambda msg: socketio.emit("log_message", json.loads(msg), broadcast=True, room="UI_2"), serialize=True, colorize=True)
#socketio = SocketIO(app, async_method="eventlet", manage_session=False, cors_allowed_origins='*', logger=True, engineio_logger=True)
koboldai_vars = koboldai_settings.koboldai_vars(session, socketio)
@@ -8441,7 +8442,10 @@ def show_vars():
json_data['system_settings'] = json.loads(koboldai_vars.to_json("system_settings"))
return json_data
@socketio.on("trigger_error")
@logger.catch
def trigger_error(data):
temp = this_var_doesnt_exist
#==================================================================#
class EmptySchema(KoboldSchema):
@@ -11187,8 +11191,9 @@ def startup():
socketio.start_background_task(load_model, **{'initial_load':True})
print("", end="", flush=True)
if __name__ == "__main__":
@logger.catch
def run():
general_startup()
# Start flask & SocketIO
logger.init("Flask", status="Starting")
@@ -11264,8 +11269,9 @@ if __name__ == "__main__":
koboldai_vars.serverstarted = True
socketio.run(app, port=port)
logger.init("Webserver", status="Closed")
if __name__ == "__main__":
run()
else:
general_startup()
# Start flask & SocketIO

View File

@@ -1643,8 +1643,6 @@ body {
#error_message.popup {
background-color: var(--error);
color: var(--error_text);
height: 30vh;
top: 35vh;
overflow: hidden;
}

View File

@@ -30,6 +30,7 @@ socket.on('load_cookies', function(data){load_cookies(data)});
socket.on('load_tweaks', function(data){load_tweaks(data);});
socket.on("wi_results", updateWISearchListings);
socket.on("request_prompt_config", configurePrompt);
socket.on("log_message", function(data){process_log_message(data)});
//socket.onAny(function(event_name, data) {console.log({"event": event_name, "class": data.classname, "data": data});});
var presets = {};
@@ -51,6 +52,7 @@ var colab_cookies = null;
var wi_finder_data = [];
var wi_finder_offset = 0;
var selected_game_chunk = null;
var log = [];
// name, desc, icon, func
const finder_actions = [
@@ -1952,7 +1954,14 @@ function world_info_folder(data) {
function show_error_message(data) {
error_message_box = document.getElementById('error_message');
error_message_box.classList.remove("hidden");
error_message_box.querySelector("#popup_list_area").textContent = data;
error_box_data = error_message_box.querySelector("#popup_list_area")
//clear out the error box
while (error_box_data.firstChild) {
error_box_data.removeChild(error_box_data.firstChild);
}
for (item of data.split("\n")) {
$e("div", error_box_data, {'textContent': item})
}
}
function do_wpp(wpp_area) {
@@ -1993,6 +2002,17 @@ function load_cookies(data) {
}
}
function process_log_message(data) {
let level = data['record']['level']['name'];
let message = data['record']['message'];
let time = data['record']['time']['repr'];
let full_log = data['text'];
log.push({'level': level, 'message': message, 'time': time, 'full_log': full_log});
if (level == 'ERROR') {
show_error_message(full_log);
}
}
//--------------------------------------------UI to Server Functions----------------------------------
function unload_userscripts() {
files_to_unload = document.getElementById('loaded_userscripts');