Initialize logging in RareApp and log both Rare and GameLaunchHelper
This commit is contained in:
parent
0c45bd918c
commit
8d9f02eab5
51
rare/app.py
51
rare/app.py
|
@ -1,6 +1,5 @@
|
|||
import logging
|
||||
import os
|
||||
import platform
|
||||
import shutil
|
||||
import sys
|
||||
import time
|
||||
|
@ -9,13 +8,11 @@ from argparse import Namespace
|
|||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
import legendary
|
||||
import requests.exceptions
|
||||
from PyQt5.QtCore import QThreadPool, QTimer, QT_VERSION_STR, PYQT_VERSION_STR
|
||||
from PyQt5.QtCore import QThreadPool, QTimer
|
||||
from PyQt5.QtWidgets import QApplication, QMessageBox
|
||||
from requests import HTTPError
|
||||
|
||||
import rare
|
||||
from rare.components.dialogs.launch_dialog import LaunchDialog
|
||||
from rare.components.main_window import MainWindow
|
||||
from rare.shared import (
|
||||
|
@ -27,7 +24,6 @@ from rare.shared.rare_core import RareCore
|
|||
from rare.utils import legendary_utils, config_helper, paths
|
||||
from rare.widgets.rare_app import RareApp
|
||||
|
||||
|
||||
logger = logging.getLogger("Rare")
|
||||
|
||||
|
||||
|
@ -52,49 +48,8 @@ def excepthook(exc_type, exc_value, exc_tb):
|
|||
|
||||
class App(RareApp):
|
||||
def __init__(self, args: Namespace):
|
||||
super(App, self).__init__(args)
|
||||
|
||||
start_time = time.strftime("%y-%m-%d--%H-%M") # year-month-day-hour-minute
|
||||
file_name = os.path.join(paths.log_dir(), f"Rare_{start_time}.log")
|
||||
|
||||
for handler in logging.root.handlers[:]:
|
||||
logging.root.removeHandler(handler)
|
||||
|
||||
file_handler = logging.FileHandler(filename=file_name, encoding="utf-8")
|
||||
file_handler.setFormatter(fmt=logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
|
||||
|
||||
# configure logging
|
||||
if args.debug:
|
||||
logging.basicConfig(
|
||||
format="[%(name)s] %(levelname)s: %(message)s",
|
||||
level=logging.DEBUG,
|
||||
stream=sys.stderr,
|
||||
)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
logging.root.addHandler(file_handler)
|
||||
logging.getLogger().setLevel(level=logging.DEBUG)
|
||||
# keep requests, asyncio and pillow quiet
|
||||
logging.getLogger("requests").setLevel(logging.WARNING)
|
||||
logging.getLogger("urllib3").setLevel(logging.WARNING)
|
||||
logging.getLogger("asyncio").setLevel(logging.WARNING)
|
||||
logger.info(
|
||||
f"Launching Rare version {rare.__version__} Codename: {rare.code_name}\n"
|
||||
f" - Using Legendary {legendary.__version__} Codename: {legendary.__codename__} as backend\n"
|
||||
f" - Operating System: {platform.system()}, Python version: {platform.python_version()}\n"
|
||||
f" - Running {sys.executable} {' '.join(sys.argv)}\n"
|
||||
f" - Qt version: {QT_VERSION_STR}, PyQt version: {PYQT_VERSION_STR}"
|
||||
)
|
||||
else:
|
||||
logging.basicConfig(
|
||||
format="[%(name)s] %(levelname)s: %(message)s",
|
||||
level=logging.INFO,
|
||||
stream=sys.stderr,
|
||||
)
|
||||
file_handler.setLevel(logging.INFO)
|
||||
logging.root.addHandler(file_handler)
|
||||
logger.info(f"Launching Rare version {rare.__version__}")
|
||||
logger.info(f"Operating System: {platform.system()}")
|
||||
|
||||
log_file = "Rare_{0}.log"
|
||||
super(App, self).__init__(args, log_file)
|
||||
self.rare_core = RareCore(args=args)
|
||||
self.args = ArgumentsSingleton()
|
||||
self.signals = GlobalSignalsSingleton()
|
||||
|
|
|
@ -17,6 +17,8 @@ from .console import Console
|
|||
from .lgd_helper import get_launch_args, InitArgs, get_configured_process, LaunchArgs, GameArgsError
|
||||
from .message_models import ErrorModel, Actions, FinishedModel, BaseModel, StateChangedModel
|
||||
|
||||
logger = logging.getLogger("RareLauncher")
|
||||
|
||||
|
||||
class PreLaunchThread(QRunnable):
|
||||
class Signals(QObject):
|
||||
|
@ -65,7 +67,8 @@ class GameProcessApp(RareApp):
|
|||
success: bool = True
|
||||
|
||||
def __init__(self, args: Namespace):
|
||||
super(GameProcessApp, self).__init__(args)
|
||||
log_file = f"Rare_Launcher_{args.app_name}" + "_{0}.log"
|
||||
super(GameProcessApp, self).__init__(args, log_file)
|
||||
self.game_process = QProcess()
|
||||
self.app_name = args.app_name
|
||||
self.logger = getLogger(self.app_name)
|
||||
|
@ -206,10 +209,6 @@ class GameProcessApp(RareApp):
|
|||
|
||||
def start_game(args: Namespace):
|
||||
args = InitArgs.from_argparse(args)
|
||||
logging.basicConfig(
|
||||
format="[%(name)s] %(levelname)s: %(message)s",
|
||||
level=logging.INFO,
|
||||
)
|
||||
|
||||
app = GameProcessApp(args)
|
||||
app.setQuitOnLastWindowClosed(True)
|
||||
|
|
|
@ -25,6 +25,7 @@ class InitArgs:
|
|||
skip_version_check: bool = False
|
||||
wine_prefix: str = ""
|
||||
wine_bin: str = ""
|
||||
debug: str = ""
|
||||
|
||||
@classmethod
|
||||
def from_argparse(cls, args):
|
||||
|
@ -33,7 +34,8 @@ class InitArgs:
|
|||
offline=args.offline,
|
||||
skip_version_check=args.skip_update_check,
|
||||
wine_bin=args.wine_bin,
|
||||
wine_prefix=args.wine_pfx
|
||||
wine_prefix=args.wine_pfx,
|
||||
debug=args.debug,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
import logging
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
import time
|
||||
from argparse import Namespace
|
||||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtCore import Qt, QSettings, QTranslator
|
||||
import legendary
|
||||
from PyQt5.QtCore import Qt, QSettings, QTranslator, QT_VERSION_STR, PYQT_VERSION_STR
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
# noinspection PyUnresolvedReferences
|
||||
from legendary.core import LegendaryCore
|
||||
|
||||
import rare.resources.resources
|
||||
from rare.utils import paths
|
||||
from rare.utils.misc import set_color_pallete, set_style_sheet
|
||||
|
||||
|
||||
class RareApp(QApplication):
|
||||
logger = getLogger("RareApp")
|
||||
logger = logging.getLogger("RareApp")
|
||||
|
||||
def __init__(self, args: Namespace):
|
||||
def __init__(self, args: Namespace, log_file: str):
|
||||
super(RareApp, self).__init__(sys.argv)
|
||||
self.setQuitOnLastWindowClosed(False)
|
||||
if hasattr(Qt, "AA_UseHighDpiPixmaps"):
|
||||
|
@ -26,7 +26,53 @@ class RareApp(QApplication):
|
|||
|
||||
self.setApplicationName("Rare")
|
||||
self.setOrganizationName("Rare")
|
||||
|
||||
# Create directories after QStandardPaths has been initialized
|
||||
paths.create_dirs()
|
||||
|
||||
# Clean any existing logging handlers from library imports
|
||||
for handler in logging.root.handlers[:]:
|
||||
logging.root.removeHandler(handler)
|
||||
|
||||
start_time = time.strftime("%y-%m-%d--%H-%M") # year-month-day-hour-minute
|
||||
file_handler = logging.FileHandler(
|
||||
filename=os.path.join(paths.log_dir(), log_file.format(start_time)),
|
||||
encoding="utf-8",
|
||||
)
|
||||
file_handler.setFormatter(fmt=logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
|
||||
|
||||
# Set up common logging channel to stderr
|
||||
if args.debug:
|
||||
logging.basicConfig(
|
||||
format="[%(name)s] %(levelname)s: %(message)s",
|
||||
level=logging.DEBUG,
|
||||
stream=sys.stderr,
|
||||
)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
logging.root.addHandler(file_handler)
|
||||
logging.getLogger().setLevel(level=logging.DEBUG)
|
||||
# keep requests, asyncio and pillow quiet
|
||||
logging.getLogger("requests").setLevel(logging.WARNING)
|
||||
logging.getLogger("urllib3").setLevel(logging.WARNING)
|
||||
logging.getLogger("asyncio").setLevel(logging.WARNING)
|
||||
self.logger.info(
|
||||
f"Launching Rare version {rare.__version__} Codename: {rare.code_name}\n"
|
||||
f" - Using Legendary {legendary.__version__} Codename: {legendary.__codename__} as backend\n"
|
||||
f" - Operating System: {platform.system()}, Python version: {platform.python_version()}\n"
|
||||
f" - Running {sys.executable} {' '.join(sys.argv)}\n"
|
||||
f" - Qt version: {QT_VERSION_STR}, PyQt version: {PYQT_VERSION_STR}"
|
||||
)
|
||||
else:
|
||||
logging.basicConfig(
|
||||
format="[%(name)s] %(levelname)s: %(message)s",
|
||||
level=logging.INFO,
|
||||
stream=sys.stderr,
|
||||
)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
logging.root.addHandler(file_handler)
|
||||
self.logger.info(f"Launching Rare version {rare.__version__}")
|
||||
self.logger.info(f"Operating System: {platform.system()}")
|
||||
|
||||
self.settings = QSettings()
|
||||
|
||||
# Translator
|
||||
|
|
Loading…
Reference in a new issue