=== modified file 'TODO' --- TODO 2014-06-22 02:19:30 +0000 +++ TODO 2014-07-14 21:41:08 +0000 @@ -106,7 +106,6 @@ *** Properties popup ** Print a nice "We are sorry" message, save stack trace to log. ** Rename module "gobject" to "GObject". -** TODO Optional verbose mode to see checkers starting and succeeding * mandos-keygen ** TODO "--secfile" option === modified file 'mandos-monitor' --- mandos-monitor 2014-07-13 21:02:53 +0000 +++ mandos-monitor 2014-07-14 21:41:08 +0000 @@ -161,8 +161,8 @@ self.rejected, client_interface, byte_arrays=True)) - #self.logger('Created client {0}' - # .format(self.properties["Name"])) + self.logger('Created client {0}' + .format(self.properties["Name"]), level=0) def using_timer(self, flag): """Call this method with True or False when timer should be @@ -179,6 +179,9 @@ def checker_completed(self, exitstatus, condition, command): if exitstatus == 0: + self.logger('Checker for client {0} (command "{1}")' + ' succeeded'.format(self.properties["Name"], + command), level=0) self.update() return # Checker failed @@ -203,12 +206,10 @@ self.update() def checker_started(self, command): - """Server signals that a checker started. This could be useful - to log in the future. """ - #self.logger('Client {0} started checker "{1}"' - # .format(self.properties["Name"], - # str(command))) - pass + """Server signals that a checker started.""" + self.logger('Client {0} started checker "{1}"' + .format(self.properties["Name"], + command), level=0) def got_secret(self): self.logger('Client {0} received its secret' @@ -403,7 +404,7 @@ """This is the entire user interface - the whole screen with boxes, lists of client widgets, etc. """ - def __init__(self, max_log_length=1000): + def __init__(self, max_log_length=1000, log_level=1): DBusGMainLoop(set_as_default=True) self.screen = urwid.curses_display.Screen() @@ -447,6 +448,8 @@ self.log = [] self.max_log_length = max_log_length + self.log_level = log_level + # We keep a reference to the log widget so we can remove it # from the ListWalker without it getting destroyed self.logbox = ConstrainedListBox(self.log) @@ -486,13 +489,18 @@ self.uilist.append(self.logbox) self.topwidget = urwid.Pile(self.uilist) - def log_message(self, message): + def log_message(self, message, level=1): """Log message formatted with timestamp""" + if level < self.log_level: + return timestamp = datetime.datetime.now().isoformat() - self.log_message_raw(timestamp + ": " + message) + self.log_message_raw("{0}: {1}".format(timestamp, message), + level=level) - def log_message_raw(self, markup): + def log_message_raw(self, markup, level=1): """Add a log message to the log buffer.""" + if level < self.log_level: + return self.log.append(urwid.Text(markup, wrap=self.log_wrap)) if (self.max_log_length and len(self.log) > self.max_log_length): @@ -505,8 +513,8 @@ """Toggle visibility of the log buffer.""" self.log_visible = not self.log_visible self.rebuild() - #self.log_message("Log visibility changed to: " - # + str(self.log_visible)) + self.log_message("Log visibility changed to: {0}" + .format(self.log_visible), level=0) def change_log_display(self): """Change type of log display. @@ -517,7 +525,8 @@ self.log_wrap = "clip" for textwidget in self.log: textwidget.set_wrap_mode(self.log_wrap) - #self.log_message("Wrap mode: " + self.log_wrap) + self.log_message("Wrap mode: {0}".format(self.log_wrap), + level=0) def find_and_remove_client(self, path, name): """Find a client by its object path and remove it. @@ -670,7 +679,9 @@ "?: Help", "l: Log window toggle", "TAB: Switch window", - "w: Wrap (log)")))) + "w: Wrap (log lines)", + "v: Toggle verbose log", + )))) self.log_message_raw(("bold", " " .join(("Clients:", @@ -689,6 +700,13 @@ else: self.topwidget.set_focus(self.logbox) self.refresh() + elif key == "v": + if self.log_level == 0: + self.log_level = 1 + self.log_message("Verbose mode: Off") + else: + self.log_level = 0 + self.log_message("Verbose mode: On") #elif (key == "end" or key == "meta >" or key == "G" # or key == ">"): # pass # xxx end-of-buffer === modified file 'mandos-monitor.xml' --- mandos-monitor.xml 2011-12-31 23:05:34 +0000 +++ mandos-monitor.xml 2014-07-14 21:41:08 +0000 @@ -2,7 +2,7 @@ - + %common; ]> @@ -129,6 +129,10 @@ Toggle log window line wrap + v + Toggle verbose logging + + Up, Ctrl-P, k Move up a line