Merge branch 'model_logger' into UI_2.0

This commit is contained in:
misyaguziya
2023-09-02 06:03:08 +09:00
3 changed files with 40 additions and 0 deletions

View File

@@ -442,6 +442,16 @@ class Config:
self._SELECTED_TAB_TARGET_LANGUAGES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
@property
def ENABLE_LOGGER(self):
return self._ENABLE_LOGGER
@ENABLE_LOGGER.setter
def ENABLE_LOGGER(self, value):
if type(value) is bool:
self._ENABLE_LOGGER = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
# Config Window
@property
def IS_CONFIG_WINDOW_COMPACT_MODE(self):
@@ -515,6 +525,7 @@ class Config:
"2":"English\n(United States)",
"3":"English\n(United States)",
}
self._ENABLE_LOGGER = False
# Config Window
self._IS_CONFIG_WINDOW_COMPACT_MODE = False

10
main.py
View File

@@ -31,6 +31,8 @@ def sendMicMessage(message):
view.printToTextbox_OSCError()
view.printToTextbox_SentMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[SEND] {message} ({translation})")
def startTranscriptionSendMessage():
model.startMicTranscript(sendMicMessage)
@@ -57,6 +59,8 @@ def receiveSpeakerMessage(message):
xsoverlay_message = xsoverlay_message.replace("[translation]", translation)
model.notificationXSOverlay(xsoverlay_message)
view.printToTextbox_ReceivedMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[RECEIVE] {message} ({translation})")
def startTranscriptionReceiveMessage():
model.startSpeakerTranscript(receiveSpeakerMessage)
@@ -90,6 +94,8 @@ def sendChatMessage(message):
# update textbox message log
view.printToTextbox_SentMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[SEND] {message} ({translation})")
# delete message in entry message box
if config.ENABLE_AUTO_CLEAR_MESSAGE_BOX is True:
@@ -359,6 +365,10 @@ model.checkOSCStarted()
# check Software Updated
model.checkSoftwareUpdated()
# init logger
if config.ENABLE_LOGGER is True:
model.startLogger()
# set UI and callback
view.register(
sidebar_features={

View File

@@ -1,3 +1,6 @@
from os import makedirs
from datetime import datetime
from logging import getLogger, FileHandler, Formatter, INFO
from time import sleep
from queue import Queue
from threading import Thread, Event
@@ -49,6 +52,7 @@ class Model:
return cls._instance
def init(self):
self.logger = None
self.mic_energy_recorder = None
self.mic_energy_plot_progressbar = None
self.speaker_energy_get_progressbar = None
@@ -77,6 +81,21 @@ class Model:
config.AUTH_KEYS = auth_keys
return result
def startLogger(self):
makedirs("./logs", exist_ok=True)
logger = getLogger()
logger.setLevel(INFO)
file_name = f"./logs/{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log"
file_handler = FileHandler(file_name, encoding="utf-8", delay=True)
formatter = Formatter("[%(asctime)s] %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
self.logger = logger
def stopLogger(self):
self.logger.disabled = True
self.logger = None
@staticmethod
def getListLanguageAndCountry():
langs = []