forked from Boria138/PortProtonQt
feat(cli): added --debug-level= argument
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
@@ -4,11 +4,9 @@ from PySide6.QtWidgets import QApplication
|
|||||||
from PySide6.QtGui import QIcon
|
from PySide6.QtGui import QIcon
|
||||||
from portprotonqt.main_window import MainWindow
|
from portprotonqt.main_window import MainWindow
|
||||||
from portprotonqt.config_utils import save_fullscreen_config
|
from portprotonqt.config_utils import save_fullscreen_config
|
||||||
from portprotonqt.logger import get_logger
|
from portprotonqt.logger import get_logger, setup_logger
|
||||||
from portprotonqt.cli import parse_args
|
from portprotonqt.cli import parse_args
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
|
||||||
|
|
||||||
__app_id__ = "ru.linux_gaming.PortProtonQt"
|
__app_id__ = "ru.linux_gaming.PortProtonQt"
|
||||||
__app_name__ = "PortProtonQt"
|
__app_name__ = "PortProtonQt"
|
||||||
__app_version__ = "0.1.5"
|
__app_version__ = "0.1.5"
|
||||||
@@ -20,6 +18,14 @@ def main():
|
|||||||
app.setApplicationName(__app_name__)
|
app.setApplicationName(__app_name__)
|
||||||
app.setApplicationVersion(__app_version__)
|
app.setApplicationVersion(__app_version__)
|
||||||
|
|
||||||
|
args = parse_args()
|
||||||
|
|
||||||
|
# Setup logger with specified debug level
|
||||||
|
setup_logger(args.debug_level)
|
||||||
|
|
||||||
|
# Reinitialize logger after setup to ensure it uses the new configuration
|
||||||
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
system_locale = QLocale.system()
|
system_locale = QLocale.system()
|
||||||
qt_translator = QTranslator()
|
qt_translator = QTranslator()
|
||||||
translations_path = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath)
|
translations_path = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath)
|
||||||
@@ -28,8 +34,6 @@ def main():
|
|||||||
else:
|
else:
|
||||||
logger.warning(f"Qt translations for {system_locale.name()} not found in {translations_path}, using english language")
|
logger.warning(f"Qt translations for {system_locale.name()} not found in {translations_path}, using english language")
|
||||||
|
|
||||||
args = parse_args()
|
|
||||||
|
|
||||||
window = MainWindow(app_name=__app_name__)
|
window = MainWindow(app_name=__app_name__)
|
||||||
|
|
||||||
if args.fullscreen:
|
if args.fullscreen:
|
||||||
|
@@ -13,4 +13,10 @@ def parse_args():
|
|||||||
action="store_true",
|
action="store_true",
|
||||||
help="Запустить приложение в полноэкранном режиме и сохранить эту настройку"
|
help="Запустить приложение в полноэкранном режиме и сохранить эту настройку"
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--debug-level",
|
||||||
|
choices=['ALL', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
|
||||||
|
default='NOTSET',
|
||||||
|
help="Установить уровень логирования (ALL для всех сообщений, по умолчанию: без логов)"
|
||||||
|
)
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
@@ -1,9 +1,27 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
def setup_logger():
|
def setup_logger(level='NOTSET'):
|
||||||
"""Настройка базовой конфигурации логирования."""
|
"""Настройка базовой конфигурации логирования."""
|
||||||
|
# Clear existing handlers to prevent duplicates
|
||||||
|
root_logger = logging.getLogger()
|
||||||
|
for handler in root_logger.handlers[:]:
|
||||||
|
root_logger.removeHandler(handler)
|
||||||
|
|
||||||
|
# Convert string level to logging level constant, map ALL to DEBUG
|
||||||
|
if level.upper() == 'ALL':
|
||||||
|
log_level = logging.DEBUG
|
||||||
|
else:
|
||||||
|
log_level = getattr(logging, level.upper(), logging.NOTSET)
|
||||||
|
|
||||||
|
# Configure logging with null handler if level is NOTSET
|
||||||
|
if log_level == logging.NOTSET:
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=logging.INFO,
|
level=logging.NOTSET,
|
||||||
|
handlers=[logging.NullHandler()]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logging.basicConfig(
|
||||||
|
level=log_level,
|
||||||
format='[%(levelname)s] %(message)s',
|
format='[%(levelname)s] %(message)s',
|
||||||
handlers=[logging.StreamHandler()]
|
handlers=[logging.StreamHandler()]
|
||||||
)
|
)
|
||||||
@@ -12,5 +30,5 @@ def get_logger(name):
|
|||||||
"""Возвращает логгер для указанного модуля."""
|
"""Возвращает логгер для указанного модуля."""
|
||||||
return logging.getLogger(name)
|
return logging.getLogger(name)
|
||||||
|
|
||||||
# Инициализация логгера при импорте модуля
|
# Инициализация логгера при импорте модуля (без логов по умолчанию)
|
||||||
setup_logger()
|
setup_logger()
|
||||||
|
Reference in New Issue
Block a user