Much better logging, gives feedback during process
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user