import sys import logging from PySide6.QtWidgets import QApplication from ui.MainWindow import MainWindow from ui.AppSettings import AppSettingsDlg from conf import app_settings def main(): """Haupteinstiegspunkt der Anwendung.""" # Logging konfigurieren - sowohl Datei als auch Konsole from datetime import datetime # Log-Verzeichnis erstellen (im selben Verzeichnis wie config.json) from conf import config_path log_dir = config_path.parent / "logs" log_dir.mkdir(exist_ok=True) # Log-Dateiname mit Timestamp timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") log_file = log_dir / f"documentor_{timestamp}.log" # Root-Logger konfigurieren logger = logging.getLogger() logger.setLevel(logging.DEBUG) # Formatter für alle Handler formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%H:%M:%S") # Handler 1: Datei (alles ab DEBUG) file_handler = logging.FileHandler(log_file, encoding="utf-8") file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(formatter) logger.addHandler(file_handler) # Handler 2: Konsole (alles ab INFO) console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) console_handler.setFormatter(formatter) logger.addHandler(console_handler) logging.info(f"Logging initialisiert: {log_file}") # QApplication-Instanz erstellen app = QApplication(sys.argv) # Hauptfenster erstellen window = MainWindow() # Hauptfenster anzeigen window.show() if ( len(app_settings.apache_fops) == 0 or len(app_settings.diff_pdfs) == 0 or len(app_settings.java_vms) == 0 or len(app_settings.saxon_jars) == 0 or len(app_settings.xsl_dirs) == 0 or len(app_settings.pdf_projects) == 0 ): # Als Modal Dialog öffnen! dlg = AppSettingsDlg(window, app_settings) dlg.exec() # Anwendung ausführen und Rückgabewert zurückgeben return app.exec() if __name__ == "__main__": sys.exit(main())