Improve consistency between -d command-line arg and log view verbosity

- if user set verbosity to debug in log view, keep this setting on next start
- if -d is passed on command line, set verbosity to debug only until exit, but if the user switches it in log view
- set default log level to warning
- save verbosity to config option "log_verbosity"
This commit is contained in:
Laurent Monin
2018-02-09 18:08:30 +01:00
parent 76092e61f9
commit fdbd18d93a
3 changed files with 13 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ from PyQt5 import QtCore
_MAX_TAIL_LEN = 10**6
VERBOSITY_DEFAULT = logging.INFO
VERBOSITY_DEFAULT = logging.WARNING
def debug_mode(enabled):

View File

@@ -26,6 +26,7 @@ sip.setapi("QVariant", 2)
from PyQt5 import QtGui, QtCore, QtWidgets
import argparse
import logging
import os.path
import platform
import re
@@ -99,6 +100,8 @@ class Tagger(QtWidgets.QApplication):
__instance = None
_debug = False
def __init__(self, picard_args, unparsed_args, localedir, autoupdate):
# Use the new fusion style from PyQt5 for a modern and consistent look
@@ -117,7 +120,12 @@ class Tagger(QtWidgets.QApplication):
self._cmdline_files = picard_args.FILE
self._autoupdate = autoupdate
self._debug = False
self.debug(
picard_args.debug
or "PICARD_DEBUG" in os.environ
or config.setting['log_verbosity'] == logging.DEBUG
)
# FIXME: Figure out what's wrong with QThreadPool.globalInstance().
# It's a valid reference, but its start() method doesn't work.
@@ -152,7 +160,6 @@ class Tagger(QtWidgets.QApplication):
signal.signal(signal.SIGTERM, self.signal)
# Setup logging
self.debug(picard_args.debug or "PICARD_DEBUG" in os.environ)
log.debug("Starting Picard from %r", os.path.abspath(__file__))
log.debug("Platform: %s %s %s", platform.platform(),
platform.python_implementation(), platform.python_version())

View File

@@ -144,13 +144,13 @@ class LogView(LogViewCommon):
config.Option("persist", "logview_position", QtCore.QPoint()),
config.Option("persist", "logview_size", QtCore.QSize(
LogViewCommon.WIDTH, LogViewCommon.HEIGHT)),
config.Option("persist", "logview_verbosity", log.VERBOSITY_DEFAULT),
config.IntOption("setting", "log_verbosity", log.VERBOSITY_DEFAULT),
]
def __init__(self, parent=None):
super().__init__(log.main_tail, _("Log"), w=self.WIDTH,
h=self.HEIGHT, parent=parent)
self.verbosity = config.persist['logview_verbosity']
self.verbosity = config.setting['log_verbosity']
self.restoreWindowState("logview_position", "logview_size")
self._setup_formats()
@@ -296,12 +296,12 @@ class LogView(LogViewCommon):
self.verbosity_menu.set_verbosity(self.verbosity)
def closeEvent(self, event):
config.persist['logview_verbosity'] = self.verbosity
self.saveWindowState("logview_position", "logview_size")
super().closeEvent(event)
def _verbosity_changed(self, level):
if level != self.verbosity:
config.setting['log_verbosity'] = level
QtCore.QObject.tagger.debug(level == logging.DEBUG)
self.verbosity = level
self.display(clear=True)