This commit is contained in:
WorldTeacher
2024-01-26 13:10:33 +01:00
parent d07de40dbc
commit 1c1b5802f6
14 changed files with 176 additions and 117 deletions

65
src/logic/log.py Normal file
View File

@@ -0,0 +1,65 @@
import logging
import os
if not os.path.exists("logs"):
os.mkdir("logs")
with open("logs/application.log", "w") as f:
pass
# Create a common file handler for all loggers
common_file_handler = logging.FileHandler("logs/application.log")
common_file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
common_file_handler.setFormatter(formatter)
class MyLogger:
def __init__(self, logger_name):
self.logger = logging.getLogger(logger_name)
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(common_file_handler)
self.encoding = "utf-8"
def log_info(self, message: str):
# ensure that the message is encoded in utf-8
self.logger.info(message.encode(self.encoding))
def log_debug(self, message: str):
self.logger.debug(message.encode(self.encoding))
def log_warning(self, message: str):
self.logger.warning(message.encode(self.encoding))
def log_error(self, message: str):
self.logger.error(message.encode(self.encoding))
def log_critical(self, message: str):
self.logger.critical(message.encode(self.encoding))
def log_exception(self, message: str):
self.logger.exception(message)
# Usage example:
if __name__ == "__main__":
logger1 = MyLogger("Logger1")
logger2 = MyLogger("Logger2")
logger1.log_info("This is an info message from Logger1")
logger1.log_debug("This is a debug message from Logger1")
logger1.log_warning("This is a warning message from Logger1")
logger1.log_error("This is an error message from Logger1")
logger1.log_critical("This is a critical message from Logger1")
logger2.log_info("This is an info message from Logger2")
logger2.log_debug("This is a debug message from Logger2")
logger2.log_warning("This is a warning message from Logger2")
logger2.log_error("This is an error message from Logger2")
logger2.log_critical("This is a critical message from Logger2")
try:
# Simulate an exception
raise Exception("An exception occurred")
except Exception as e:
logger1.log_exception("An exception occurred in Logger1")
logger2.log_exception("An exception occurred in Logger2")

View File

@@ -4,7 +4,7 @@ import time
from PyQt6.QtCore import QThread, pyqtSignal
from src.backend.database import Database
from log import MyLogger
from src.logic.log import MyLogger
from src.transformers import RDS_AVAIL_DATA
from src.logic.webrequest import BibTextTransformer, WebRequest
import sqlite3

View File

@@ -18,7 +18,7 @@ from src.logic import c_sort
from src.backend.database import Database
from src.logic.constants import APP_NRS, PROF_TITLES
from src.logic.dataclass import ApparatData, BookData, MailData
from log import MyLogger
from src.logic.log import MyLogger
from src.logic.threads import BookGrabber,AvailChecker
from src.ui import (
App_Ext_Dialog,

View File

@@ -3,7 +3,7 @@ from bs4 import BeautifulSoup
from omegaconf import OmegaConf
from src.logic.dataclass import BookData
from log import MyLogger
from src.logic.log import MyLogger
from src.transformers import ARRAYData, BibTeXData, COinSData, RDSData, RISData
#import sleep_and_retry decorator to retry requests
from ratelimit import limits, sleep_and_retry