add commandline options to define log-level (resolves #15)
This commit is contained in:
parent
1c221d21e4
commit
9044f663cf
2 changed files with 33 additions and 8 deletions
|
|
@ -3,9 +3,10 @@
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
|
import logging
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from gi.repository import Gio, Gtk, Gdk
|
from gi.repository import Gio, Gtk, Gdk, GLib
|
||||||
|
|
||||||
from mcg import Environment
|
from mcg import Environment
|
||||||
from mcg import widgets
|
from mcg import widgets
|
||||||
|
|
@ -14,17 +15,40 @@ from mcg import widgets
|
||||||
|
|
||||||
|
|
||||||
class Application(Gtk.Application):
|
class Application(Gtk.Application):
|
||||||
TITLE = "MPDCoverGrid (Gtk)"
|
TITLE = "MPDCoverGrid"
|
||||||
ID = 'de.coderkun.mcg'
|
ID = 'de.coderkun.mcg'
|
||||||
|
|
||||||
|
|
||||||
|
def _get_option(shortname, longname, description):
|
||||||
|
option = GLib.OptionEntry()
|
||||||
|
option.short_name = ord(shortname)
|
||||||
|
option.long_name = longname
|
||||||
|
option.description = description
|
||||||
|
return option
|
||||||
|
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Gtk.Application.__init__(self, application_id=Application.ID, flags=Gio.ApplicationFlags.FLAGS_NONE)
|
Gtk.Application.__init__(self, application_id=Application.ID, flags=Gio.ApplicationFlags.FLAGS_NONE)
|
||||||
self._window = None
|
self._window = None
|
||||||
|
self._verbosity = 0
|
||||||
|
self.add_main_option_entries([
|
||||||
|
Application._get_option("v", "verbose", "Be verbose: show info messages"),
|
||||||
|
Application._get_option("d", "debug", "Enable debugging: show debug messages")
|
||||||
|
])
|
||||||
|
self.connect('handle-local-options', self.handle_local_options)
|
||||||
|
|
||||||
|
|
||||||
|
def handle_local_options(self, widget, options):
|
||||||
|
if options.contains("debug") and options.lookup_value('debug'):
|
||||||
|
self._verbosity = logging.DEBUG
|
||||||
|
elif options.contains("verbose") and options.lookup_value('verbose'):
|
||||||
|
self._verbosity = logging.INFO
|
||||||
|
return -1
|
||||||
|
|
||||||
|
|
||||||
def do_startup(self):
|
def do_startup(self):
|
||||||
Gtk.Application.do_startup(self)
|
Gtk.Application.do_startup(self)
|
||||||
|
self._setup_logging()
|
||||||
self._load_resource()
|
self._load_resource()
|
||||||
self._load_settings()
|
self._load_settings()
|
||||||
self._load_css()
|
self._load_css()
|
||||||
|
|
@ -38,6 +62,13 @@ class Application(Gtk.Application):
|
||||||
self._window.present()
|
self._window.present()
|
||||||
|
|
||||||
|
|
||||||
|
def _setup_logging(self):
|
||||||
|
logging.basicConfig(
|
||||||
|
level=self._verbosity,
|
||||||
|
format="%(asctime)s %(levelname)s: %(message)s"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _load_resource(self):
|
def _load_resource(self):
|
||||||
self._resource = Gio.resource_load(
|
self._resource = Gio.resource_load(
|
||||||
Environment.get_data(Application.ID + '.gresource')
|
Environment.get_data(Application.ID + '.gresource')
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,6 @@ class Window():
|
||||||
self._panels = []
|
self._panels = []
|
||||||
self._mcg = client.Client()
|
self._mcg = client.Client()
|
||||||
self._logger = logging.getLogger(__name__)
|
self._logger = logging.getLogger(__name__)
|
||||||
self._logger.addHandler(logging.StreamHandler(stream=sys.stdout))
|
|
||||||
self._logger.setLevel(logging.ERROR)
|
|
||||||
logging.getLogger(client.__name__).addHandler(logging.StreamHandler(stream=sys.stdout))
|
|
||||||
logging.getLogger(client.__name__).setLevel(logging.ERROR)
|
|
||||||
#self._mcg.get_logger().addHandler(logging.StreamHandler(stream=sys.stdout))
|
|
||||||
#self._mcg.get_logger().setLevel(logging.ERROR)
|
|
||||||
self._size = self._settings.get_value(Window.SETTING_WINDOW_SIZE)
|
self._size = self._settings.get_value(Window.SETTING_WINDOW_SIZE)
|
||||||
self._maximized = self._settings.get_boolean(Window.SETTING_WINDOW_MAXIMIZED)
|
self._maximized = self._settings.get_boolean(Window.SETTING_WINDOW_MAXIMIZED)
|
||||||
self._fullscreened = False
|
self._fullscreened = False
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue