Much better logging, gives feedback during process

This commit is contained in:
Martin Asprusten
2025-04-20 18:08:07 +02:00
parent 5d6138bdc2
commit e38628cbc6
3 changed files with 52 additions and 6 deletions
+41
View File
@@ -1,3 +1,5 @@
import logging
from logging.config import dictConfig
from typing import Optional, Callable
from Crypto.PublicKey.ECC import EccKey
@@ -7,6 +9,45 @@ from SantaExchange.MessageHandler import MessageHandler
from SantaExchange.SantasBrain import Brain
from SantaExchange.UserInterface import UserInterface
logging_function: Optional[Callable[[str], None]] = None
class ExchangeLogger(logging.Handler):
def emit(self, record: logging.LogRecord):
if logging_function is not None:
logging_function(record.message)
LOGGING_SETTINGS = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'std_formatter': {'format': '%(message)s'}
},
'handlers': {
'stdhandler': {
'class': 'logging.StreamHandler',
'formatter': 'std_formatter',
'stream': 'ext://sys.stdout'
},
'ExchangeLogger': {
'class': f'{__name__}.ExchangeLogger',
'formatter': 'std_formatter',
'level': 'INFO'
}
},
'loggers': {
'root': {
'handlers': ['stdhandler', 'ExchangeLogger'],
'level': 'NOTSET',
'propagate': True
}
}
}
dictConfig(LOGGING_SETTINGS)
class ExchangeClient(MessageHandler, UserInterface):
def __init__(self, send_message_function, receive_user_function, announce_recipient_function):
MessageHandler.__init__(self)
+2 -2
View File
@@ -21,13 +21,13 @@ async function prepare() {
}
function printLogs(record) {
console.log(record);
postMessage({type: 'status', stage: 'exchange', text: record});
}
pyodide.globals.set('send_message', sendMessage);
pyodide.globals.set('receive_user', receiveUser);
pyodide.globals.set('announce_recipient', announceRecipient);
pyodide.globals.set('print_logs_function', printLogs);
pyodide.globals.set('logging_function', printLogs);
pyodide.runPython(`
exchange_worker = ExchangeClient(send_message, receive_user, announce_recipient)