pamhyr: Start switch to logging for program logs.

results
Pierre-Antoine Rouby 2023-07-05 16:14:44 +02:00
parent 9b9ef8ee4b
commit 2f78432005
6 changed files with 55 additions and 14 deletions

View File

@ -2,12 +2,15 @@
import os
import sqlite3
import logging
from pathlib import Path
from tools import SQL
from Model.Except import NotImplementedMethodeError
logger = logging.getLogger()
# Top level model class
class SQLModel(SQL):
_sub_classes = []
@ -22,11 +25,11 @@ class SQLModel(SQL):
self._cur = self._db.cursor()
if is_new:
print("CREATE")
logger.info("Create database")
self._create() # Create db
# self._save() # Save
else:
print("UPDATE")
logger.info("Update database")
self._update() # Update db scheme if necessary
# self._load() # Load data

View File

@ -1,6 +1,9 @@
# -*- coding: utf-8 -*-
import logging
from copy import deepcopy
from config import Config
from View.ASubWindow import ASubWindow
from View.ListedSubWindow import ListedSubWindow
@ -27,6 +30,8 @@ from PyQt5.QtWidgets import (
from Solver.Solvers import solver_long_name
logger = logging.getLogger()
class SolverTableModel(QAbstractTableModel):
def __init__(self, headers=[], rows=[]):
super(QAbstractTableModel, self).__init__()
@ -215,7 +220,7 @@ class ConfigureWindow(ASubWindow, ListedSubWindow):
# Debug
def set_debug(self):
self.conf.debug = not self.conf.debug
print(f"[DEBUG] Debug mode set : {self.conf.debug}")
logger.info(f"Debug mode set : {self.conf.debug}")
self.parent.setup_debug_mode()
# Solvers

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import os
import logging
from queue import Queue
from PyQt5 import QtGui
@ -39,6 +40,8 @@ from View.Debug.Window import ReplWindow
from Model.Study import Study
logger = logging.getLogger()
no_model_action = [
"action_menu_new", "action_menu_open", "action_menu_import_mage",
"action_menu_import_rubarbe", "action_toolBar_open",
@ -206,6 +209,15 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
# Maximise window
self.showMaximized()
def set_debug_lvl(self, debug = True):
if debug:
logger.setLevel(logging.DEBUG)
logger.info("Set logging level to DEBUG")
else:
logger.setLevel(logging.INFO)
logger.info("Set logging level to INFO")
def setup_debug_mode(self, init = False):
menu = self.findChild(QMenu, "menu_help")
@ -216,11 +228,14 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
if self.conf.debug:
menu.addAction(self.debug_action)
self.set_debug_lvl(debug = True)
else:
if self.conf.debug:
menu.addAction(self.debug_action)
self.set_debug_lvl(debug = True)
else:
menu.removeAction(self.debug_action)
self.set_debug_lvl(debug = False)
#########
# MODEL #
@ -283,7 +298,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
else:
self.model.filename = file_name + ".pamhyr"
print("[INFO] Save...")
logger.info("Save...")
self.model.save()
def save_as_study(self):
@ -380,7 +395,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
if dialog.exec_():
file_name = dialog.selectedFiles()
self.set_model(Study.open(file_name[0]))
print(f"[MainWindow] Open Study : {self.model.name}")
logger.info(f"Open Study - {self.model.name}")
def open_new_study(self):
"""Open dialog to set new study

View File

@ -2,6 +2,7 @@
import os
import pickle
import logging
from tools import SQL
@ -13,13 +14,15 @@ from Solver.Solvers import solver_type_list
config_dir = "/.cache/pamhyr/"
config_file = "config.sqlite3"
logger = logging.getLogger()
class Config(SQL):
def __init__(self):
self._version = '0.0.1'
self.filename = Config.filename()
self.set_default_value()
print(self.filename)
logging.info(f"Configuration file : {self.filename}")
super(Config, self).__init__(filename = self.filename)
@ -61,10 +64,10 @@ class Config(SQL):
self.commit()
def _update(self):
version = self.execute(f"SELECT value FROM info WHERE key='version'")
version = self.execute(f"SELECT value FROM info WHERE key='version'")[0]
if version != self._version:
print("update")
logger.info(f"Configuration file update from {version} to {self._version}...")
def _load_solver(self):
self._solvers = []

View File

@ -3,6 +3,7 @@
import sys, os
import locale
import logging
from PyQt5.QtCore import QTranslator
from PyQt5.QtWidgets import QApplication
@ -15,6 +16,13 @@ from tools import (
from View.MainWindow import ApplicationWindow
from Model.Study import Study
logging.basicConfig(
level=logging.DEBUG,
format='[PAMHYR][%(levelname)s] %(message)s'
)
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def main():
conf = Config.load()
app = QApplication(sys.argv)
@ -37,7 +45,7 @@ def main():
if lang_file != "":
ok = translator.load(lang_file)
if not ok:
print("failed")
logger.error("Failed to load translate file")
app.installTranslator(translator)

View File

@ -3,6 +3,7 @@
import os
import time
import sqlite3
import logging
import traceback
from datetime import datetime
@ -16,6 +17,12 @@ from functools import (
reduce, partial, wraps
)
###########
# LOGGING #
###########
logger = logging.getLogger()
##########
# TIMERS #
##########
@ -242,7 +249,7 @@ class SQL(object):
@timer
def execute(self, cmd, fetch_one = True, commit = False):
# print(f"[SQL] {cmd}")
logger.debug(f"SQL - {cmd}")
res = self._cur.execute(cmd)
if commit:
@ -252,13 +259,13 @@ class SQL(object):
return value
def _create(self):
print("TODO: Create")
logger.warning("TODO: Create")
def _update(self):
print("TODO: Update")
logger.warning("TODO: Update")
def _save(self):
print("TODO: Save")
logger.warning("TODO: Save")
def _load(self):
print("TODO: Load")
logger.warning("TODO: LOAD")