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 self._SELECTED_TAB_TARGET_LANGUAGES = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, 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 # Config Window
@property @property
def IS_CONFIG_WINDOW_COMPACT_MODE(self): def IS_CONFIG_WINDOW_COMPACT_MODE(self):
@@ -515,6 +525,7 @@ class Config:
"2":"English\n(United States)", "2":"English\n(United States)",
"3":"English\n(United States)", "3":"English\n(United States)",
} }
self._ENABLE_LOGGER = False
# Config Window # Config Window
self._IS_CONFIG_WINDOW_COMPACT_MODE = False self._IS_CONFIG_WINDOW_COMPACT_MODE = False

10
main.py
View File

@@ -31,6 +31,8 @@ def sendMicMessage(message):
view.printToTextbox_OSCError() view.printToTextbox_OSCError()
view.printToTextbox_SentMessage(message, translation) view.printToTextbox_SentMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[SEND] {message} ({translation})")
def startTranscriptionSendMessage(): def startTranscriptionSendMessage():
model.startMicTranscript(sendMicMessage) model.startMicTranscript(sendMicMessage)
@@ -57,6 +59,8 @@ def receiveSpeakerMessage(message):
xsoverlay_message = xsoverlay_message.replace("[translation]", translation) xsoverlay_message = xsoverlay_message.replace("[translation]", translation)
model.notificationXSOverlay(xsoverlay_message) model.notificationXSOverlay(xsoverlay_message)
view.printToTextbox_ReceivedMessage(message, translation) view.printToTextbox_ReceivedMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[RECEIVE] {message} ({translation})")
def startTranscriptionReceiveMessage(): def startTranscriptionReceiveMessage():
model.startSpeakerTranscript(receiveSpeakerMessage) model.startSpeakerTranscript(receiveSpeakerMessage)
@@ -90,6 +94,8 @@ def sendChatMessage(message):
# update textbox message log # update textbox message log
view.printToTextbox_SentMessage(message, translation) view.printToTextbox_SentMessage(message, translation)
if config.ENABLE_LOGGER is True:
model.logger.info(f"[SEND] {message} ({translation})")
# delete message in entry message box # delete message in entry message box
if config.ENABLE_AUTO_CLEAR_MESSAGE_BOX is True: if config.ENABLE_AUTO_CLEAR_MESSAGE_BOX is True:
@@ -359,6 +365,10 @@ model.checkOSCStarted()
# check Software Updated # check Software Updated
model.checkSoftwareUpdated() model.checkSoftwareUpdated()
# init logger
if config.ENABLE_LOGGER is True:
model.startLogger()
# set UI and callback # set UI and callback
view.register( view.register(
sidebar_features={ 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 time import sleep
from queue import Queue from queue import Queue
from threading import Thread, Event from threading import Thread, Event
@@ -49,6 +52,7 @@ class Model:
return cls._instance return cls._instance
def init(self): def init(self):
self.logger = None
self.mic_energy_recorder = None self.mic_energy_recorder = None
self.mic_energy_plot_progressbar = None self.mic_energy_plot_progressbar = None
self.speaker_energy_get_progressbar = None self.speaker_energy_get_progressbar = None
@@ -77,6 +81,21 @@ class Model:
config.AUTH_KEYS = auth_keys config.AUTH_KEYS = auth_keys
return result 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 @staticmethod
def getListLanguageAndCountry(): def getListLanguageAndCountry():
langs = [] langs = []