added debug mode option

This commit is contained in:
DYefremov
2020-07-11 12:58:03 +03:00
parent 65b58c9d08
commit 8ba7751b97
4 changed files with 48 additions and 12 deletions

View File

@@ -20,8 +20,14 @@ def init_logger():
log("Logging is enabled.", level=logging.INFO)
def log(message, level=logging.ERROR):
logging.getLogger(_LOGGER_NAME).log(level, message)
def log(message, level=logging.ERROR, debug=False, fmt_message="{}"):
""" The main logging function. """
logger = logging.getLogger(_LOGGER_NAME)
if debug:
from traceback import format_exc
logger.log(level, fmt_message.format(format_exc()))
else:
logger.log(level, message)
def run_idle(func):

View File

@@ -668,6 +668,16 @@ class Settings:
def remove_unused_bouquets(self, value):
self._settings["remove_unused_bouquets"] = value
# **************** Debug **************** #
@property
def debug_mode(self):
return self._settings.get("debug_mode", False)
@debug_mode.setter
def debug_mode(self, value):
self._settings["debug_mode"] = value
if __name__ == "__main__":
pass

View File

@@ -179,8 +179,8 @@ class DownloadDialog:
done_callback=lambda: self.show_info_message(get_message("Done!"), Gtk.MessageType.INFO),
use_http=self._use_http_switch.get_active())
except Exception as e:
from traceback import format_exc
log("Downloading data error: {}".format(format_exc()))
msg = "Downloading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
self.show_info_message(str(e), Gtk.MessageType.ERROR)
if all((download, backup, data_path)):
restore_data(backup_src, data_path)

View File

@@ -77,6 +77,7 @@ class Application(Gtk.Application):
# Adding command line options
self.add_main_option("log", ord("l"), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, "", None)
self.add_main_option("record", ord("r"), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, "", None)
self.add_main_option("debug", ord("d"), GLib.OptionFlags.NONE, GLib.OptionArg.STRING, "", None)
handlers = {"on_close_app": self.on_close_app,
"on_resize": self.on_resize,
@@ -406,6 +407,18 @@ class Application(Gtk.Application):
log("Starting record of current stream...")
log("Not implemented yet!")
if "debug" in options:
d_op = options.get("debug", "off")
if d_op == "on":
self._settings.debug_mode = True
elif d_op == "off":
self._settings.debug_mode = False
else:
log("No valid [on, off] arguments for -d found!")
return 1
log("Debug mode is {}.".format(d_op))
self._settings.save()
self.activate()
return 0
@@ -1111,14 +1124,21 @@ class Application(Gtk.Application):
download_type=DownloadType.ALL,
callback=lambda x: print(x, end=""))
except Exception as e:
from traceback import format_exc
log("Downloading data error: {}".format(format_exc()))
msg = "Downloading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
self.show_error_dialog(str(e))
else:
GLib.idle_add(self.open_data)
@run_task
def on_upload_data(self, download_type):
if not self.is_data_saved():
gen = self.save_data(lambda: self.on_upload_data(download_type))
GLib.idle_add(lambda: next(gen, False), priority=GLib.PRIORITY_LOW)
else:
self.upload_data(download_type)
@run_task
def upload_data(self, download_type):
try:
profile = self._s_type
opts = self._settings
@@ -1137,8 +1157,8 @@ class Application(Gtk.Application):
callback=lambda x: print(x, end=""),
use_http=use_http)
except Exception as e:
from traceback import format_exc
log("Uploading data error: {}".format(format_exc()))
msg = "Uploading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
self.show_error_dialog(str(e))
def on_data_open(self, action=None, value=None):
@@ -1195,9 +1215,9 @@ class Application(Gtk.Application):
self.show_error_dialog(str(e))
return
except Exception as e:
from traceback import format_exc
log("Reading data error: {}".format(format_exc()))
self.show_error_dialog(get_message("Reading data error!") + "\n" + str(e))
msg = "Reading data error: {}"
log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg)
self.show_error_dialog("{}\n{}".format(get_message("Reading data error!"), e))
return
else:
self.append_blacklist(black_list)