add commandline options to define log-level (resolves #15)

This commit is contained in:
coderkun 2016-08-07 15:54:37 +02:00
commit 9044f663cf
2 changed files with 33 additions and 8 deletions

View file

@ -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')

View file

@ -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