Removed constant transmission of log to UI. Now it pulls last 100 lines when clicked.

This commit is contained in:
ebolam
2022-09-27 15:40:46 -04:00
parent 3afd617cb4
commit 2500233f20
3 changed files with 40 additions and 20 deletions

View File

@@ -481,6 +481,15 @@ def UI_2_logger(message):
else:
socketio.emit("log_message", data, broadcast=True, room="UI_2")
web_log_history = []
def UI_2_log_history(message):
conv = Ansi2HTMLConverter(inline=True, dark_bg=True)
data = json.loads(message)
data['html'] = [conv.convert(text, full=False) for text in data['text'].split("\n")]
if len(web_log_history) >= 100:
del web_log_history[0]
web_log_history.append(data)
from flask import Flask, render_template, Response, request, copy_current_request_context, send_from_directory, session, jsonify, abort, redirect, has_request_context
from flask_socketio import SocketIO, emit, join_room, leave_room
from flask_socketio import emit as _emit
@@ -494,8 +503,8 @@ 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)
#socketio = SocketIO(app, async_method="eventlet", manage_session=False, cors_allowed_origins='*', max_http_buffer_size=10_000_000, logger=logger, engineio_logger=True)
logger.add(UI_2_logger, serialize=True, colorize=True, enqueue=True)
#logger.add(UI_2_logger, serialize=True, colorize=True)
logger.add(UI_2_log_history, serialize=True, colorize=True, enqueue=True, level="INFO")
#logger.add("log_file_1.log", rotation="500 MB") # Automatically rotate too big file
koboldai_vars = koboldai_settings.koboldai_vars(socketio)
@@ -8992,6 +9001,14 @@ def UI_2_refresh_auto_memory(data):
koboldai_vars.auto_memory += "\n\n Final Result:\n" + output
#==================================================================#
# Test
#==================================================================#
@socketio.on("get_log")
def UI_2_get_log(data):
emit("log_message", web_log_history)
#==================================================================#
# Test
#==================================================================#

View File

@@ -2047,23 +2047,25 @@ 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(data['html']);
}
//put log message in log popup
log_popup = document.getElementById('log_popup');
log_popup_data = log_popup.querySelector("#popup_list_area")
//clear out the error box
for (item of data['html']) {
$e("div", log_popup_data, {'innerHTML': item, 'classes': ['console_text']})
$e("br", log_popup_data)
function process_log_message(full_data) {
for (data of full_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(data['html']);
}
//put log message in log popup
log_popup = document.getElementById('log_popup');
log_popup_data = log_popup.querySelector("#popup_list_area")
//clear out the error box
for (item of data['html']) {
$e("div", log_popup_data, {'innerHTML': item, 'classes': ['console_text']})
$e("br", log_popup_data)
}
}
}

View File

@@ -411,6 +411,7 @@
</div>
<div id="settings_footer" class="settings_footer">
<span>Execution Time: <span id="Execution Time"></span></span> |
<span>Remaining Time: <span class="var_sync_model_tqdm_rem_time"></span></span> | <a onclick='document.getElementById("log_popup").classList.remove("hidden");'>Log</a>
<span>Remaining Time: <span class="var_sync_model_tqdm_rem_time"></span></span> |
<a onclick='socket.emit("get_log", {});document.getElementById("log_popup").classList.remove("hidden");'>Log</a>
</div>
</div>